来自NHibernate,我试图用Java做这样的事情(第一个例子):
http://ayende.com/Blog/archive/2009/06/03/nhibernate-mapping-ndash-ltmapgt.aspx
我有以下代码:
public class Box implements Serializable {
private Long boxId;
private Map<String, String> properties;
public String getProperty(String key) {
return properties.get(key);
}
}
在映射中:
<map name="properties" access="field">
<key column="boxId"/>
<map-key column="propertyKey" type="string"/>
<element column="propertyValue" type="clob"/>
</map>
但是当我尝试通过 getProperty 方法获取属性值时,我收到以下错误:
java.lang.ClassCastException:$ Proxy17 无法强制转换为java.lang.String
我是否忽视了一些明显的东西?我真的不知道“$ Proxy17”是什么。
答案 0 :(得分:1)
要将clob映射到地图中的字符串值,您可能需要创建自定义用户类型...请参阅此文章:http://simoes.org/docs/hibernate-2.1/76.html
答案 1 :(得分:1)
您可以尝试使用<element column="propertyValue" type="string"/>
。 Hibernate通常足够聪明,可以完成将clobs转换为字符串的所有工作。