分两步操作:
1、主表实体类中,添加注解@NamedEntityGraph
JPA 解决n+1次查询问题
如上,设置name值,并指定attributeNodes(看名字就知道可以指定多个),每个node的值如下图红框:
JPA 解决n+1次查询问题
2、在主表的DAO方法中 重写用到的查询方法,service层中调用什么方法就重写什么方法,我这边用到的是:
Page<ContractInfo> findAll( Specification<ContractInfo> var1, Pageable var2);
并添加注解@EntityGraph
JPA 解决n+1次查询问题
最终进行测试,发现只执行了一次查询,sql打印确定是left outer join实现
JPA 解决n+1次查询问题
仔细看,单向一对多的情况,用的是set,双向关联时用的是List,因为我单向一对多用List会报错
cannot simultaneously fetch multiple bags,所以改set了,具体没深入研究。

that’s All~!

相关文章:

  • 2021-04-14
  • 2021-10-16
  • 2022-01-05
  • 2022-12-23
  • 2018-10-16
  • 2021-10-02
猜你喜欢
  • 2022-12-23
  • 2021-10-15
  • 2021-08-16
  • 2021-06-20
  • 2021-09-15
  • 2021-12-14
  • 1970-01-01
相关资源
相似解决方案