在Spring data JPA中查询select inner join多表时如何获取数据



这是我的项目。我有问题,我想从表中获取数据学生加入许多表分支,房间和性别使用注释@Query作为站点查询图像MySql

语句MySql

这是我想在Spring Data JPA中使用@Query的代码,目的是在连接多个表时获取数据

在我调用API后,它通知错误这是错误

我需要支持,这是我的项目:https://github.com/daovantam0410/quan-ly-dao-tao

这里有两个选项,您可以使用从数据库中获取学生。

List<Student> students = studentRepository.findAll();

这将通过发出其他查询来加载其他实体(房间,性别和分支),这将导致著名的问题N+1 queries

所以要一次加载所有实体,使用entity graphsfetch join

@Query(value = "SELECT st FROM Student st INNER JOIN FETCH st.branch b INNER JOIN FETCH st.gender g INNER JOIN FETCH st.room r")
List<Student> fetchStudentDataJoinTable();

注意:如果属性(room,genderbranch)在学生中可以使用null,则使用left join代替inner join

最新更新