私は非常に興味深い質問があります:私は3つのテーブルを持っている場合、どのように私は休止状態に参加するのですか?例:テーブルA、B、Cを持つ。複数のテーブルを結合するHibernate JPA
@Entity
public class A {
private String name;
private Int idA;
...
}
@Entity
public class B {
private String lastName;
private Int idB;
...
}
@Entity
public class C {
private String name;
private String lastName;
...
}
と私のネイティブクエリは次のようになります。「内側から*選択をb、内側がa.idA = b.idBとb.lastName = c.lastNameとa.name = c.nameにCに参加する参加から:「あなたはHQLクエリでそのテーブルB
を経由して、テーブルCとテーブルAに参加している場合は、あなたが2つのテーブルを結合したい場合@JoinColumを使用して、@JoinTableでき休止中
は次のようになります」 Aは内部結合a bをb内部結合ac "とすると、
@Entity
public class A {
...
@OneToMany
@JoinColumn(name="idB", referencedColumnName="idA")
private List<B> b;
...
@ManyToMany
@JoinTable(name = "B",
joinColumns = {@JoinColumn(name="idB", referencedColumnName="ioA")},
inverseJoinColumns = {@JoinColumn(name="lastName",referencedColumnName="lastName")}
)
private List<C> c;
...
}
それでも私は、テーブルCにテーブルAからの直接アクセスを持っていけない、この場合には、誰もが私はあなたのDBの構造を理解するためにJPAについて
select * from a inner join b inner join c on a.idA = b.idB and b.lastName = c.lastName and a.name = c.name
HQLで
とJPA
あなたは関係を定義する必要がありますか? –