2011-01-31 54 views
4

什么是坚持在一个类中的下列地图的最佳方式:坚持一个Map <整数,浮点数>使用JPA

@Entity 
    class MyClass { 


     @ManyToMany(cascade = CascadeType.ALL)  
     Map<Integer,Float> myMap = new HashMap<Integer, Float>(); 
    } 

我已经试过了,但代码的结果:

org.hibernate.AnnotationException:由造成@OneToMany或@ManyToMany的使用目标未映射类:mypackage.myClass.myMap [java.lang.Float中]

+0

你为什么把`@ ManyToMany`标注到地图上?这个注释是为了创建实体之间的关系(DB中的表格发言) – gabuzo 2011-01-31 10:07:31

回答

9

不能使用@ManyToManyIntegerFloat,因为这些类型是值类型,而不是实体。使用@ElementCollection(自Hibernate 3.5以来)或@CollectionOfElements(在以前的版本中)。

@ElementCollection 
Map<Integer,Float> myMap = new HashMap<Integer, Float>(); 

参见:

+0

工作很棒,我发现它没有导入org.hibernate,所以它是JPA的一部分? – Roalt 2011-01-31 12:14:53