【发布时间】:2021-08-26 17:22:59
【问题描述】:
我找到了一些避免 N+1 问题的解决方案,但该解决方案仅适用于单个多对一关系。
例如下面的问题:What is the solution for the N+1 issue in JPA and Hibernate?
我要解决的问题是:
@Entity
public class Book implements Serializable {
@Id
private Long id;
private String title;
@ManyToOne(fetch = FetchType.LAZY)
private Author author;
@ManyToOne(fetch = FetchType.LAZY)
private Brand brand;
}
尝试通过 JPQL 获取的解决方案不起作用,只获取一个关系,例如:
SELECT b FROM Book b
INNER JOIN FETCH b.author
INNER JOIN FETCH b.brand
在这种情况下,只会获取“作者”关系,而“品牌”关系将发生 N+1 个问题。
您知道解决此特定问题的任何解决方案吗?
谢谢!
【问题讨论】:
标签: java hibernate jpa join fetch