使用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;