使用Hibernate和JPA映射Map
我尝试以下映射
@ElementCollection private Map doubleValues;
但是当我从这里生成我的模式时(使用mvn hibernate3:hbm2ddl ),我得到以下错误:
org.hibernate.MappingException: Could not determine type for: java.util.Map, at table: ImagerAnalysisResult, for columns: [org.hibernate.mapping.Column(doubleValues)]
我已经尝试添加列和类型信息,但我一直得到相同的错误。 另外,我不认为应该给出信息,因为hibernate应该使用generics声明(根据如何映射Map )。
我正在使用hibernate版本3.6.4.Final,我尝试过其他版本
有什么建议么? 谢谢。
编辑:似乎maven hibernate插件已经两年了,依赖于较旧的hibernate版本…为什么这个插件没有被维护?
编辑:命名字段“doubleValues”以确保没有保留名称问题。
“值”一词是SQL保留关键字,您不能将其用作SQL中的标识符。 如果你试图命名一些“索引”,那同样的事情就会出现。 如果您将名称更改为其他名称,则应该有效。
你懂:
insert into table values (...)
由于使用了其他关键字,我在过去也遇到过类似的问题。
顺便说一句,在过去,我尝试了Hibernate 3.6.2和地图集合的几个问题。 你可能想看看这个答案 ,因为你似乎正朝着同样的方向前进。
我希望有所帮助!
你可以尝试更明确:
@ElementCollection @CollectionTable(name = "MY_ENTITY_VALUES", joinColumns = @JoinColumn(name = "entity_id")) @Column(name = "DOUBLE_VALUES") private Map doubleValues;