我尝试以下映射
@ElementCollection
private Map<String, Double> 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 应该使用通用声明(根据 How to map a Map<String,Double> )。
我正在使用 hibernate 版本 3.6.4.Final 并且我已经尝试过其他版本
有什么建议吗?谢谢。
编辑:maven hibernate 插件似乎已有两年历史并且依赖于较旧的 hibernate 版本...为什么不维护此插件?
编辑:命名字段“doubleValues”以确保没有保留名称问题。
最佳答案
“值”一词是 SQL 保留关键字,不能将其用作 SQL 中的标识符。如果您尝试将某物命名为“索引”,则同样的事情会成为避风港。如果您将名称更改为其他名称,它应该可以正常工作。
你知道:
insert into table values (...)
过去,由于使用了其他关键字,我在自动生成代码时也遇到过类似的问题。
顺便说一句,过去我用 Hibernate 3.6.2 和 map 集合试验了几个问题。你可能喜欢 take a look a this answer ,因为您似乎正朝着相同的方向前进。
希望对您有所帮助!
关于java - 使用 Hibernate 和 JPA 映射 Map<String, Double>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6096525/