当前位置: 首页 > 面试题库 >

JPA实体图的FETCH和LOAD有什么区别?

华炜
2023-03-14
问题内容

我是JPA的新手,正在尝试使用实体图。而且我意识到,当我检索数据时,我需要指定要使用的EntityGraphType。

我阅读了JPA2.1规范,但仍不确定如何正确使用这两个选项…

问题是…

  • 如果我没有特定要求,应该使用哪个选项?
  • 我需要使用“读取并加载”时的具体情况是什么?

问题答案:

我将首先回答您问题的第二部分。

我需要使用“读取并加载”时的具体情况是什么?

有装载在JPA中,实体两种主要方式 急切 装载和
加载。在急切加载中,实体在其父级被加载时立即被加载。在延迟加载中,仅当调用实体的实际吸气剂时才加载该实体。高性能应用程序倾向于偏向于延迟加载,因为在应用程序启动时让最终用户等待整个表,甚至是一组表都不太好加载。现在进入第二个问题。

FETCH通过导入javax.persistence.fetchgraph包含实体的文件来指定作为策略。在这种情况下,实体图中指定的所有属性都将被视为FetchType.EAGER,而所有

指定的属性将被视为FetchType.LAZY。另一方面,如果您LOAD通过导入将javax.persistence.loadgraph其指定为策略,则实体图中指定的所有属性也FetchType.EAGER将被使用,但是未指定的属性将使用其指定的类型;如果实体未指定,则默认使用默认属性。

如果我没有特定要求,应该使用哪个选项?

话虽如此,您不太可能没有特定的要求。至少,您需要Web应用程序才能快速运行。因此,您可能应该默认为延迟加载。使用FETCH图是一个不错的选择,因为它默认为延迟加载,
除非 在少数特殊情况下,您认为应该急于加载属性。

这里是一个很棒的博客的链接,该博客详细解释了所有这些内容以及代码示例



 类似资料:
  • 我是JPA新手,正在尝试使用实体图。我意识到当我检索数据时,我需要指定我想要使用的EntityGraphType。 我阅读了JPA2.1规范,但我仍然不确定如何正确使用这2个选项... 问题是。。。 < li >如果我没有任何具体要求,我应该使用哪个选项? < li >当我需要使用提取和加载时,具体是什么情况?

  • 我在这里看到了两个不同的提取: 有人能告诉我两者的区别吗? PS:我已经读了readme.md,但我仍然没有得到区别。上次我查过,同构是指有相似的形式或关系。对我来说还是说不通。

  • 问题内容: 我通过使用fetch调用Web服务,但是我可以在axios的帮助下进行相同的操作。所以现在我很困惑。我应该选择axios还是fetch? 问题答案: Fetch和Axios在功能上非常相似,但是为了实现向后兼容,Axios似乎工作得更好(例如,在IE 11中,fetch无法正常工作 另外,如果您使用JSON请求,则以下是我偶然发现的一些区别。 提取JSON发布请求 Axios JSON

  • 本文向大家介绍document的load 和ready有什么区别?相关面试题,主要包含被问及document的load 和ready有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 并没有 的写法。 只有如下的写法: 分别是dom加载完成, 和 页面资源加载完成(当阻塞资源与非阻塞资源全部加载完才会触发) 显然 window.onload 是比较 要晚触发的。

  • 问题内容: 请帮助我了解在哪里使用常规JOIN和JOIN FETCH。 例如,如果我们有这两个查询 和 它们之间有什么区别吗?如果是,何时使用哪个? 问题答案: 在这两个查询中,你正在使用JOIN查询与至少一个部门关联的所有员工。 但是,不同之处在于:在第一个查询中,你仅返回hibernate的Employes。在第二个查询中,你将返回员工和所有关联的部门。 因此,如果你使用第二个查询,则无需执行

  • 问题内容: 我想通过获取发送发帖请求,但是不起作用。 但是,如果我通过jQuery ajax做到这一点,它将成功。 我想知道两种方式的区别,以及我在这里使用fetch时是否有任何错误: 问题答案: 规范主要在两个方面有所不同: 即使响应是HTTP 404或500,从fetch()返回的Promise也不会拒绝HTTP错误状态。相反,它将正常解析(ok状态设置为false),并且仅在网络故障或失败时