1
我有一個非常有趣的問題:如果我有3個表,我如何加入休眠?例如:有表A,B,C;休眠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;
...
}
和我的祖國查詢將是這樣的:「選擇*從內JOIN B內部聯接上a.idA = b.idB和b.lastName = c.lastName c和a.name = c.name 「
在Hibernate中,你可以使用@JoinColum如果你想加入2個表,並且@JoinTable,如果您正在使用表C.通過表B.在HQL加盟表格中的
這樣的查詢將類似於:」從a內連接ab作爲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的直接訪問,誰能給我解釋一下我怎麼才能
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
你必須定義一個關係,不是嗎? –