无法使用 JPA 注释映射哈希图
Posted
技术标签:
【中文标题】无法使用 JPA 注释映射哈希图【英文标题】:Unable to map a hashmap using JPA annotations 【发布时间】:2017-04-02 00:17:44 【问题描述】:我正在使用 dropwizard,它在内部使用 JPA 注释和休眠来映射对象。其中一个对象有一个地图字段,我将其定义为
@Column
@ElementCollection(targetClass=String.class)
Map<String, String> routes;
我一直看到以下错误
org.hibernate.MappingException: Could not determine type for: java.util.Map, at table
我已经尝试了 SO 中提到的一些东西
添加了@MapKey
注解
在 getter 上添加注释
将 Map 更改为 HashMap 似乎没有任何问题。
【问题讨论】:
你想在哪里保存这个地图?成一列?进入(加入)表?成一列序列化? “targetClass”试图做什么?您在该字段上定义了泛型,因此 targetClass 无关紧要 是作为表序列化的列 在这种情况下,您可以尝试@Lob
,或者在此链接datanucleus.org/products/accessplatform_5_1/jpa/… 上使用@AttributeConverter
【参考方案1】:
您可以使用@MapKeyColumn(name="column_name")。此链接可能有用:https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Map_Key_Columns_.28JPA_2.0.29
【讨论】:
添加@MapKeyColumn注解后结果相同 你用 Map以上是关于无法使用 JPA 注释映射哈希图的主要内容,如果未能解决你的问题,请参考以下文章