こんにちは私は3つのエンティティを持っています。Java Hibernateマップエンティティリストのリスト@AssociationOverrides
@Entity
public class A {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
...
private List<BC> bcList;
}
@Entity
public class B {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
...
}
@Entity
public class C {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
...
}
これらのエンティティは、ManyToManyの関連付けによって互いに関連付けられています。つまり、a_b_c(id_a、id_b、id_c)のような関連テーブルが必要です。 私は、私が欲しいのと同じように動作するAssociationOverridesを作成しました。
@Embeddable
public class ABCPK implements Serializable {
@ManyToOne
@JoinColumn(name = "id_a")
private A a;
@ManyToOne
@JoinColumn(name = "id_b")
private B b;
@ManyToOne
@JoinColumn(name = "id_c")
private C c;
...
}
@Entity
@Table(name = "a_b_c")
@AssociationOverrides({
@AssociationOverride(name = "pk.a",
joinColumns = @JoinColumn(name = "id_a",referencedColumnName = "id")),
@AssociationOverride(name = "pk.b",
joinColumns = @JoinColumn(name = "id_b",referencedColumnName = "id")) ,
@AssociationOverride(name = "pk.c",
joinColumns = @JoinColumn(name = "id_c",referencedColumnName = "id")) })
public class ABC{
@EmbeddedId
private ABCPK pk=new ABCPK();
@Transient
public A getA() {
return pk.getA();
}
public void setA(A a) {
this.pk.setA(a);
}
...
}
public class BC{
private B b;
private List<C> cList;
}
しかし、私は私の関連テーブルからリストbcListとリストCLISTを取得したいと思いますが、私は本当に私はそれを行うことができますかわかりません。私はすでに@JoinFormulaを試しましたが、jpqlだけを使って動作させることを推奨します。私を正しい方法で入れてください。 ありがとう
リストを置き換える場合 bcList by HashMap bcMap注釈を使用してこのハッシュマップをどのように埋めることができるか知っていますか? – ScorprocS