在向JPA 2.1查询提供EntityGraph提示时,javax.persistence.fetchgraph
与javax.persistence.loadgraph
的区别如何?文档不是很清楚。
答案 0 :(得分:4)
使用fetchgraph
时,无论注释如何,所有关系都被视为lazy
,并且仅加载所提供图表的元素。这在运行某些对象的报告时特别有用,并且您不希望通常通过eager
注释加载许多通常标记的内容。
如果您想急切加载通过lazy
注释正常加载的实体,您可以使用loadgraph
将实体添加到通常稍后加载的查询结果中,从而避免特定的N + 1案例。已经标记为eager
的关系将继续像往常一样加载。
请参阅https://docs.oracle.com/javaee/7/tutorial/persistence-entitygraphs001.htm