使用 hql 进行 hibernate 内连接

标签 hibernate inner-join

我是 Hibernate 的新手。我有两个表,例如,studentphone number并且这两个表有一个共同的列,student id .
我想使用 Hibernate hql 对这两个表进行内部连接。

student.java

{
   private int id;   
   private String name;   
}

电话.java
{
   private int pid;
   private int sid;  //same id in student.java 
   private int phone_number;
}

最佳答案

阅读 the documentation再次。您不应该在 Phone 实体中拥有学生的 ID。相反,您应该在两个实体之间建立关联:电话属于学生:

public class Phone {
    @Id
    private Integer id;

    private String phoneNumber;

    @ManyToOne
    private Student owner;
}

只有这样,您才能使用连接:
// selects all the phones belonging to the students named 'John'
select phone from Phone phone where phone.owner.name = 'John'

关于使用 hql 进行 hibernate 内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12403858/

相关文章:

mysql - 如何加速 mysql 结果

mysql - 针对不同的条件,从同一张表中选择 max(date) 两次

java - 如何使用 Criteria Restriction.like、Hibernate 和 Spring 来设置不同的参数?

java - 如何在hibernate HQL中查询一对多的连接

java - 使用 hibernate 和 ehcache 进行 native SQL 缓存

java - Hibernate不会初始化代理

java - 为什么 load() 的工作方式与 Hibernate 中的 get() 相同?

php - MySQL 内部连接 ​​2 个表

sql - 帮助限制内部连接

MYSQL INNER JOIN 其中一行不存在属性