1

文字列がマップされたエンティティのキ​​ーではない場合、マップを永続化するのに役立ちますか? 例えば:

class A {

   @Id
   long id;

   String code;
}

class B {

   @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
   @What magical combination of JPA annotations should I use here?! 
   Map<String,A> mapAByCode;

}

{@JoinTable,@MapKeyColumn,@JoinColumn,@JoinTable} アノテーションの多くの組み合わせを試しましたが成功しませんでした。気が狂いそうです...

ありがとう!

4

2 に答える 2

0

A.code 値を使用してエンティティをマップしたいように見えるので、 @MapKey が目的です。@MapKey を使用すると、マップのキーとして使用する参照内の値を定義できます。javadoc が述べているように、一意である必要があります。そうしないと、問題が発生します。

  @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
  @MapKey(name="code")
  Map<String,A> mapAByCode;
于 2013-09-27T17:54:55.120 に答える