所以我有一个与此相似的课程
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
。知道如何解决这个问题吗?
答案 0 :(得分:1)
我真的怀疑Hibernate能够只用@ElementCollection
为你处理这种类型的映射。您可能需要定义一个新的复合键,其中包含Long
个映射键作为@Id
字段,然后在Map<CompositeLong, Double>
上使用元素集合。当然,我对这些Long
值所代表的含义做了一些假设,但如果没有更多的背景,很难说清楚。