加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Hibernate相当于EclipseLink的批量查询提示?

发布时间:2020-12-15 01:10:22 所属栏目:Java 来源:网络整理
导读:我喜欢EclipseLink的一件事有一个叫做batch query hint的好东西,我还没有找到Hibernate的等价物. 基本上做一大堆连接变得很乱,你最终查询的方式比你想要的更多数据(请记住,如果你加入6个地址的人,那么人的信息将被返回6次;现在继续将其乘以额外的连接) . 想

我喜欢EclipseLink的一件事有一个叫做batch query hint的好东西,我还没有找到Hibernate的等价物.

基本上做一大堆连接变得很乱,你最终查询的方式比你想要的更多数据(请记住,如果你加入6个地址的人,那么人的信息将被返回6次;现在继续将其乘以额外的连接) .

想象一个Person实体,其中包含0:M的Address,Email,Phone和OrderHistory集合.使用批处理方法加入所有不好的方法:

List persons = entityManager.createQuery("select p from Person p"
  .setHint(QueryHints.BATCH,"p.address")
  .setHint(QueryHints.BATCH,"p.email")
  .setHint(QueryHints.BATCH,"p.phone")
  .setHint(QueryHints.BATCH,"p.orderHistory")
  .getResultList();

这将在Person表上进行查询,就是这样.首次访问地址记录时,它将对整个地址表执行单个查询.如果在Person表上指定了where子句,则同样的条件也将用于Address加载.

因此,不要进行1次查询,而是执行5次查询.

如果您使用连接执行此操作,则可以在一个查询中获取所有内容,但由于连接,您可能正在加载更多数据.

无论如何,我已经开始在Hibernate文档中寻找与此相当的东西,但是没有看到它.有吗?

最佳答案
没有一个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读