如何在两个 table 上使用休眠查询(加入 table)?
How to use hibernate query on two tables (join table)?
我有这些表:cont(id_cont, user, pass)
emp(emp_id, 名字, cont_id_cont (fk))
@Entity
@Table(name = "emp", catalog = "", uniqueConstraints = {
@UniqueConstraint(columnNames = "cont_id_cont") })
public class Emp implements java.io.Serializable{
private int id_emp;
private ContUser contUser;
private String name;
和
@Entity
@Table(name = "cont", catalog = "", uniqueConstraints = {
@UniqueConstraint(columnNames = "pass") })
public class Cont implements java.io.Serializable{
private int id_cont;
private String user;
private String pass;
private Set<Emp> empForCont = new HashSet<Emp>(0);
}
现在:我想要这个查询:
select cont.user、emp.name、emp.cont_id_cont 来自续
cont.id_cont= emp.cont_id_cont 上的内部加入 emp,其中 cont.user = 'gbs04405';
这种访问数据的方式不是 ORM
的目的。如果您使用 Hibernate
,您应该(通常)通过对象访问数据。为了使这项工作有效,而不是像约束那样嵌入 SQL,在必要时定义对象之间的关系 @OneToMany
、@ManyToOne
、and/or @ManyToMany
。
此外,你应该考虑使用HQL
(或JPQL
)而不是纯粹的SQL
,来达到你想要的效果。
应该是这样的:
SELECT e FROM Emp e JOIN e.contUser u WHERE u.user = :userstring
您可以查看 here 了解更多 JPQL
语法。
我有这些表:cont(id_cont, user, pass) emp(emp_id, 名字, cont_id_cont (fk))
@Entity @Table(name = "emp", catalog = "", uniqueConstraints = { @UniqueConstraint(columnNames = "cont_id_cont") }) public class Emp implements java.io.Serializable{ private int id_emp; private ContUser contUser; private String name;
和
@Entity
@Table(name = "cont", catalog = "", uniqueConstraints = {
@UniqueConstraint(columnNames = "pass") })
public class Cont implements java.io.Serializable{
private int id_cont;
private String user;
private String pass;
private Set<Emp> empForCont = new HashSet<Emp>(0);
}
现在:我想要这个查询: select cont.user、emp.name、emp.cont_id_cont 来自续 cont.id_cont= emp.cont_id_cont 上的内部加入 emp,其中 cont.user = 'gbs04405';
这种访问数据的方式不是 ORM
的目的。如果您使用 Hibernate
,您应该(通常)通过对象访问数据。为了使这项工作有效,而不是像约束那样嵌入 SQL,在必要时定义对象之间的关系 @OneToMany
、@ManyToOne
、and/or @ManyToMany
。
此外,你应该考虑使用HQL
(或JPQL
)而不是纯粹的SQL
,来达到你想要的效果。
应该是这样的:
SELECT e FROM Emp e JOIN e.contUser u WHERE u.user = :userstring
您可以查看 here 了解更多 JPQL
语法。