当前位置: 首页 > 知识库问答 >
问题:

FetchType EAGER与Root fetch()不相同?

慕凡
2023-03-14

我正在使用JPA2CriteriaBuilder构建一个查询,并使用Hibernate4作为我的提供者。我一直在玩FetchModes,并得出结论,选择是我需要的。但选择forces将启用FetchType.Lazy。我在什么地方读到这篇文章,似乎是这样的。

在Devices类中,此配置会产生正确的结果:

@Fetch(value=FetchMode.SELECT)
@OneToMany(fetch=FetchType.EAGER, mappedBy = "device")
public List<DevInterfaces> getDevInterfaces() {
    return this.devInterfaces;
}

但是,我不希望在我的实体中硬编码FetchType=Eager。我想控制提取发生的时间,我想我可以用像这样的fetch()来完成:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Devices> dq = cb.createQuery(Devices.class);
Root<Devices> dev = dq.from(Devices.class);
dev.fetch(Devices_.devInterfaces)

如何使用FetchMode.Select进行提取而不硬编码FetchType.Eager?

共有1个答案

席乐童
2023-03-14

正如前面提到的,这里也有文档说明,fetch使用内部联接。

当使用也将JoinType作为参数的重载fetch方法时,可以指定联接类型:

dev.fetch(Devices_.devInterfaces, JoinType.LEFT)
 类似资料:
  • 你可能必须和不好相处的人相处。甚至可能你本身就是一个不好相处的人。如果你是那种与同事和权威人物有许多矛盾的人,你应该珍惜这种独立所暗示的东西,但需要在不牺牲你的智力或原则的前提下提高你的人际交往能力。 在这方面没有什么经验,或者先前生活的行为模式在工作场合的经验不能适用的一些程序员,对这种事情会非常困扰。不好相处的人经常习惯于拒绝,并且与他人相比,他们更不容易受社交压力所影响。关键是合适地尊重他们

  • 本文向大家介绍Ruby与Python | 相似和不同之处,包括了Ruby与Python | 相似和不同之处的使用技巧和注意事项,需要的朋友参考一下 Ruby与Python 如果我们谈论Ruby和Python,它们都是高级编程语言。另一方面,它们都有一些相似之处和不同之处。让我们先谈谈它们的相似之处。 Ruby和Python的相似之处 您可以使用它们两者来开发软件并分发它们,而无需支付任何许可费用。

  • 问题内容: 我正在使用Elasticsearch进行研究。我打算使用余弦相似度,但我注意到它不可用,而我们将BM25作为默认评分功能。 有什么理由吗?余弦相似度是否不适用于查询文档?为什么选择BM25作为默认值?谢谢 问题答案: 长期的Elasticsearch使用TF / IDF算法来查找查询中的相似性。但是以前的数字版本更有效地更改为BM25。您可以阅读文档中的信息。好的文章解释了什么是ela

  • 我正在用LibGDX做一个游戏,还有LibGDX,它附带的Box2D包装器。具体来说,我的游戏是2D侧滚。 我的问题是我的玩家雪碧。我需要玩家非常精确的移动,所以我决定设置它,当玩家按下箭头键时,它会调用,然后当他们停止按键时,它会将他们的线速度重置为0。 在我的游戏中,我有重力。为了确保玩家在左右移动时摔倒,我创建了方法: 当我的球员自由落体时,这很好用。然而,当我的玩家碰到任何静止的物体(包括

  • 稍稍反省一下,似乎表明值只是一些实现细节,只是一个数字。ndarray

  • 我读了无数关于python中相对导入的讨论,我认为它如此令人困惑的原因之一是它在一个python版本之间发生了变化(我的版本是3.6)。但这里的罪魁祸首似乎是PyCharm(除非我弄错了..)我想知道是否有人找到了解决这个问题的办法。对于具有此布局的项目: 假设aa.py在文件中包含一些fuction,如果我编写这个导入: 因此,为了让PyCharm高兴,我可以将添加到导入中,然后错误似乎就解决了