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

Hibernate ORM:如何避免获取@OneToOne映射对象?

乌灿
2023-03-14

我有以下实体:

我尝试过创建@OneToOne(FetchType.lazy),但不起作用,它仍然提取不需要的信息。

如何避免获取复合对象

我希望最终结果不包含Address对象,因为它在20个场景中需要一次,我可以分别获取它们。

任何想法,如何实现这一点。

谢谢

共有1个答案

刘奇
2023-03-14

如果我们的oneToOne值不能为null,您可以通过添加optional=false:@oneToOne(optional=false,fetch=fetchType.lazy)来实现惰性加载。

在这里得到了完美的解释。

 类似资料:
  • 问题内容: 我正在尝试使Hibernate @OneToOne注释正常工作,并且在这里没有太大的成功… 假设我有一个名为的表格,看起来像这样: 我有一个看起来像这样的实体: 还有一个类似的,另一个实体看起来像这样: 当我进行读取时,我希望它将返回带有的对象。相反,我得到一个AnnotationException:“引用的属性不是(One | Many)ToOne:mappedBy User.sta

  • 至少有两个用例: 除非用户提供筛选器参数,否则显示网格数据是没有意义的 返回标记视图时,不应将显示的数据替换为当前数据。(更新中有进一步阐述) 作为Vaadin 14+的新手,我不知道如何实现这一点。每次显示我的时,都会查询的count和fetch回调。调用来自网格的。 我的用于在和之间切换 是一个,用于将的内容从切换到。 用例2是:当返回到时,的状态应该与以前完全相同(这与很好地配合)。 打开-

  • 我有2个实体:Field和ViewOptions 省略与问题无关的字段和方法

  • 我有一个NetBeans项目,我想在其中设计jasper报表,当我通过填充报表时,我发现了一条错误消息。 例外情况是: 线程“awt-eventqueue-0”java.lang.noClassDefounderror:org/apache/commons/logging/logFactory在net.sf.jasperReports.engine.util.jrloader.(jrloader.

  • 我有两个实体 我使用带有spring数据的spring boot和最新版本的jpa、hibernate。在文档中,@OneToOne是默认的EAGER,但当我获取EAGER fetch对象时,当我在get方法中不使用@Transactional时,我会得到lazyInitializationException。我不明白为什么。。。 当我将这个方法标记为@Transactional时,这个工作。但是

  • 我有以下数据结构: <代码>地图 我想从这个复杂的 Map 对象中提取它的值(它本身是另一个字符串 Map)。我目前正在这样做: 上面的实现给了我一个新的Map对象,由于外部循环,它正在迭代。似乎我错过了什么。 如何从复杂的 Map 对象中提取内部 Map 对象? 编辑: 回应AlexWien的评论 原始数据结构: 原始数据结构背后的原因是为一对id(ID1和ID2)存储一个值。ID1和ID2可以