java - Spring Data JPA中查询选择内连接多表时如何获取数据
问题描述
这是我的项目。我有问题,我想从学生表中获取数据加入许多表分支、房间和性别使用注释@Query 作为图像 MySql 中的站点查询
这是我想在 Spring Data JPA 中使用 @Query 的代码,目的是在加入多个表时获取数据
在我调用 API 后,它通知错误 这是错误
我需要支持,这是我的项目: https ://github.com/daovantam0410/quan-ly-dao-tao
解决方案
您在这里有两个选项,您可以使用从数据库中获取学生。
List<Student> students = studentRepository.findAll();
这将通过发出其他查询来加载其他实体(房间、性别和分支),这将导致著名的问题N+1 queries
因此,要一次性加载所有实体,请使用entity graphs
或fetch 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
和gender
)branch
可以null
在学生中,则使用left join
而不是inner join
。
推荐阅读
- typescript - 打字稿分层继承
- python - 如何更新使用 folium python 绘制的地理空间地图上的标记?
- c++ - SFML 窗口立即关闭
- javascript - node.js 上的 HTML 注入问题
- sql - SQL:如何使用 MariaDB 中的连接使用来自另一张表的数据更新一张表
- r - 如何根据与 R 中的数据集不同的列向绘图添加颜色?
- reactjs - 为什么我的 API 调用多次返回
- reactjs - 我如何在 React 中制作一个非常基本的 useState 钩子?
- javascript - D3 - 将 x 值数据刻度显示为百分比
- javascript - Chartjs 雷达图 - 如何在特定点动态突出显示其中一条网格线