javax.persistence.fetchgraph
和 javax.persistence.loadgraph
在向 JPA 2.1 查询提供 EntityGraph 提示时有何不同?文档并不是很清楚。
使用 fetchgraph
来查询所有关系时,无论如何都会被视为 lazy
。只有提供的图形元素会被加载。这在针对某些对象运行报告并且不希望通过 eager
标注加载大量信息时非常有用。
如果您希望急切地加载通常通过 lazy
标注加载的实体,则可以使用 loadgraph
将实体添加到查询结果中,从而避免特定的 N+1 情况。已标记为 eager
的关系将继续像往常一样被加载。
请参阅 https://docs.oracle.com/javaee/7/tutorial/persistence-entitygraphs001.htm