spring-boot - 有没有办法在 Spring Data JPA 的单个 SELECT 查询中获取具有关联类的类?
问题描述
我有两个类,A和B具有一对多的关系。
@Entity
public class A {
//some code
@OneToMany(fetch = FetchType.LAZY, mappedBy = "abc")
private List<B> b;
}
我有一个A的 JPA 存储库,我观察到当我使用存储库方法从数据库中获取A时,不包括B 。当我想访问B时,会执行额外的 SELECT 查询来获取关联的B(如果有 100 个关联的B,则执行 100 个额外的查询)。使 FetchType.EAGER 仅在执行这些附加 SELECT 查询时更改。即它们在主 SELECT 查询之后被调用。无论哪种方式,都会执行额外的 SELECT 查询来获取关联的类。
这是自然行为吗?我发现JPA Entity Graphs是这个问题的解决方案/使用单个 SELECT 查询获取A和B 。有没有其他方法可以解决这个问题?问题@EntityGraph
是它必须分别用每个存储库方法进行注释。另外,有没有办法注释@EntityGraph
一次,所以它会影响存储库中的所有方法?
我正在使用 Spring Boot 2.5.1。提前致谢!
解决方案
推荐阅读
- javascript - JavaScript 猜词游戏问题:一旦按下字母键,同一个字母不会多次填充
- javascript - 如何监听来自 vuex 的计算数组的变化
- python - 用于 bs4 的 Visual Studio Code 中的导入错误
- android - 如何记录活动处于活动状态的时间(秒)?
- c - 如何使用 fgets 和 sscanf 在 C 中使用 FILE 指针进行文件读写
- reactjs - 单击事件时的引导弹出窗口
- firebase - 用于图像大小调整的 Firestore 扩展陷入无限循环
- feathersjs - 我如何在没有羽毛客户端的情况下在 socket.io android 中收听自定义服务的事件
- javascript - 如何使用样式组件显示一些值?
- gitlab-ci - gitlab ci 中的 gitleaks