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
你必须定义一个关系,不是吗? –