JPA 2.1中fetchgraph和loadgraph有什么区别?

15

javax.persistence.fetchgraphjavax.persistence.loadgraph 在向 JPA 2.1 查询提供 EntityGraph 提示时有何不同?文档并不是很清楚。

1个回答

21

使用 fetchgraph 来查询所有关系时,无论如何都会被视为 lazy。只有提供的图形元素会被加载。这在针对某些对象运行报告并且不希望通过 eager 标注加载大量信息时非常有用。

如果您希望急切地加载通常通过 lazy 标注加载的实体,则可以使用 loadgraph 将实体添加到查询结果中,从而避免特定的 N+1 情况。已标记为 eager 的关系将继续像往常一样被加载。

请参阅 https://docs.oracle.com/javaee/7/tutorial/persistence-entitygraphs001.htm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接