Java 保存一张地图<;整数,浮点>;与JPA合作
在类中持久化以下映射的最佳方法是什么:Java 保存一张地图<;整数,浮点>;与JPA合作,java,hibernate,jpa,Java,Hibernate,Jpa,在类中持久化以下映射的最佳方法是什么: @Entity class MyClass { @ManyToMany(cascade = CascadeType.ALL) Map<Integer,Float> myMap = new HashMap<Integer, Float>(); } @实体 类MyClass{ @多个(级联=级联类型.ALL) Map myMap=newhashmap(); } 我尝试过这个,但代
@Entity
class MyClass {
@ManyToMany(cascade = CascadeType.ALL)
Map<Integer,Float> myMap = new HashMap<Integer, Float>();
}
@实体
类MyClass{
@多个(级联=级联类型.ALL)
Map myMap=newhashmap();
}
我尝试过这个,但代码的结果是:
原因:org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany针对未映射的类:mypackage.myClass.myMap[java.lang.Float]您不能将
@ManyToMany
与整数
和浮点
一起使用,因为这些类型是值类型,而不是实体。使用@ElementCollection
(从Hibernate 3.5开始)或@collectionfements
(在以前的版本中)
@ElementCollection
Map myMap=newhashmap();
另请参见:
@manytomy
注释?这个注释是为了创建实体之间的关系(DB speak中的表)工作得很好,我看到它没有导入org.hibernate,所以它是JPA的一部分?@Roalt:Yes,@ElementCollection
是JPA 2.0的一部分。如何覆盖映射生成列的名称?@SayoOladeji:key使用@MapKeyColumn
,value使用@Column
@ElementCollection
Map<Integer,Float> myMap = new HashMap<Integer, Float>();