JPA实体图的目标是什么?

本教程将介绍JPA实体图的目标是什么?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

JPA实体图的目标是什么? 教程 第1张

问题描述

我一直在学习JPA,我发现从JPA2.1开始可以使用实体图。

但我还不了解实体图的优点。

我知道使用实体图的一个好处是我们只能在整个实体中指定我们想要获取的数据,但是如果我们想要获取整个实体,还有什么其他原因使用实体图呢?

或者仅在要检索部分数据时才应使用实体图?

如果我们使用实体图有其他用途或优点,我很想知道。

JPA

在推荐答案/Hibernate中,获取具有关联的实体始终是
关于性能的问题。

    懒惰地一次又一次地加载与事务中的关联会导致n+1个选择问题,为了避免此类问题,JPQL
    使用JOIN FETCH和Criteria API JOIN。但是通过以下方式获取数据
    这两个问题还会导致交叉连接问题意味着所有对象的交叉连接
    表记录由Hibernate返回给应用程序。

    另外,更改实体级别的批注中定义的获取变量也不是基于用例的良好选择。

    为解决上述两个问题,实体图应运而生。实体图中定义的所有节点始终是急切的
    无论它们在实体级别上的定义怎么,都会获取。这些
    图表作为提示传递给查询。

    通过将图形作为提示传递,也解决了交叉连接问题,并且指定的关联获取行为的注释级可以
    也可以更改。

对于代码,您可以检查my Github repository。

好了关于JPA实体图的目标是什么?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。