2011-01-31 3 views
4

と地図<整数、浮動小数点を>持続:はクラスで、次のマップを持続するための最良の方法は何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

答えて

9

あなたはIntegerとで@ManyToManyを使用することはできませんこれらの型は値型でエンティティではないためです。 @ElementCollection(Hibernate 3.5以降)または@CollectionOfElements(以前のバージョン)を使用してください。

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

参照:

+0

素晴らしいです、それはJPAの一部なので、org.hibernateをインポートしないのですか? – Roalt

+2

@Roalt:はい、 '@ ElementCollection'はJPA 2.0の一部です。 – axtavt

+0

おかげさまで、JPA 2.0も! – Roalt

関連する問題