如何在Hibernate中将地图保留在地图中?

时间:2013-09-05 09:02:00

标签: java hibernate hibernate-annotations

所以我有一个与此相似的课程

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)]

我认为错误是因为原始地图中的地图的注释为@ElementCollection。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我真的怀疑Hibernate能够只用@ElementCollection为你处理这种类型的映射。您可能需要定义一个新的复合键,其中包含Long个映射键作为@Id字段,然后在Map<CompositeLong, Double>上使用元素集合。当然,我对这些Long值所代表的含义做了一些假设,但如果没有更多的背景,很难说清楚。