java - 使用 Hibernate 和 JPA 映射 Map<String, Double>

标签 java hibernate jpa hibernate-mapping

我尝试以下映射

@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/

相关文章:

java - 如何强制卸载应用程序以进行更新?

java - Hibernate Search 5.5.3 最终无法获取索引数据结果?

java - hibernate 子查询抛出空指针异常

java - @Column 或 @Basic JPA 注释在 spring-data-jpa 模式创建中被忽略

orm - 自动增量 id 未反射(reflect)在使用 JPA 的复合键中

java - 如何将在 Eclipse 中制作的小程序变成可以在 Web 浏览器中运行的程序?

java - 不可变的 Jackson ObjectWriter

java - 如何使用 Java Access MS Access 查询(不是普通表)?

java - 持久化对象时出现 NonUniqueObjectException

java - 如何防止hibernate在多对多映射中插入一个表