Hibernate Spring DataJPA@manytone UIN+1问题
有一阵子没玩过Hibernate的@OneToMany和@ManytoOne了。 让我们以下面的例子为例。我们有一本桌子上的书和一本叫page的书。我只对页面内容和页面内的书籍细节感兴趣 第页: 书籍: 然后我需要使用spring数据提取所有页面Hibernate Spring DataJPA@manytone UIN+1问题,hibernate,spring-data-jpa,Hibernate,Spring Data Jpa,有一阵子没玩过Hibernate的@OneToMany和@ManytoOne了。 让我们以下面的例子为例。我们有一本桌子上的书和一本叫page的书。我只对页面内容和页面内的书籍细节感兴趣 第页: 书籍: 然后我需要使用spring数据提取所有页面 pageRepo.findAll(); 它可以工作,但我遇到了N+1问题。有N+1选择。有没有办法解决这个问题,但保持关系的单向性?您应该在Crud/Jpa存储库中创建一个查询,在那里您可以显式地使用Page和Book之间的连接 大概是这样的: pu
pageRepo.findAll();
它可以工作,但我遇到了N+1问题。有N+1选择。有没有办法解决这个问题,但保持关系的单向性?您应该在Crud/Jpa存储库中创建一个查询,在那里您可以显式地使用Page和Book之间的连接 大概是这样的:
public interface PageRepository extends JpaRepository<Page, String> {
@Query("SELECT * FROM Page p JOIN Book b ON p.book_id = b.id")
List<Page> findAll();
}
听起来不错,但不幸的是它不起作用。同样的结果。Multumesc;通过以下查询@QuerySELECT p from Page p JOIN FETCH Book b on p.Book解决了这个问题
pageRepo.findAll();
public interface PageRepository extends JpaRepository<Page, String> {
@Query("SELECT * FROM Page p JOIN Book b ON p.book_id = b.id")
List<Page> findAll();
}