java - 如何在 Hibernate 中将 map 保存在 map 内?

标签 java hibernate hibernate-annotations

所以我有一个与此类似的类(class)

public class MyClass{ 
...

@ElementCollection
private Map<Long,Map<Long,Double>> Vs = new HashMap<Long, Map<Long,Double>>(); 

...
}

当我尝试保留该类时,这会返回错误:

org.hibernate.MappingException: Could not determine type for: java.util.Map, at table: MyClass_Vs, for columns: [org.hibernate.mapping.Column(Vs)]

我认为错误是因为原始 map 内有一个 map 具有@ElementCollection注释。知道如何解决这个问题吗?

最佳答案

我真的怀疑 Hibernate 是否能够仅用 @ElementCollection 来为您处理这种类型的映射。 。您可能需要定义一个新的复合键,其中包含 Long将键映射为 @Id字段,然后在 Map<CompositeLong, Double> 上使用元素集合。当然,我正在对这些 Long 做出一些假设值代表,但如果没有更多上下文就很难判断。

关于java - 如何在 Hibernate 中将 map 保存在 map 内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18632062/

相关文章:

Hibernate 对同一对象的一对一关系

java - Hibernate 在多对多列表上创建别名

java - 分配的值的数量与指定或隐含的列的数量不同

java - 使用 editText 进行搜索功能 - ListView

java - 2 Java中函数的递归调用

mysql - 在没有 session /连接到 DB 的情况下使用 Hibernate 生成(批量)SQL 查询的线索

java - 如何在Hibernate中向POJO添加字段?

java - reflect.Field.annotations 始终为空

java - Hibernate 使用条件执行更新

java - 创建Bean时出错 - Java - Maven 3.5 - Spring 5 - Hibernate 5