java - 具有共享 key (MapsId)和延迟加载问题的 OneToOne

标签 java hibernate lazy-loading jpa-2.0 one-to-one

我的实体是:

@Entity
public class ReportSnapshot extends LightEntity {
  @Id
  @GeneratedValue
  private long id;

  @OneToOne(fetch = FetchType.LAZY, optional = false, mappedBy = "snapshot")
  private ReportContents contents;

  @Embedded
  private WeekNumber week;
  ...
}

@Entity
public class ReportContents extends LightEntity {
  @Id
  private long id;

  @MapsId
  @OneToOne(optional = false)
  private ReportSnapshot snapshot;

  @Lob
  @Column(nullable = false)
  private String reportText = "";
  ...
}

这里的 light 实体类来自 gilead 项目,旨在用于 gwt 序列化支持 - 它不会影响流程。我观察到的是:当我从实体管理器通过 id 加载 ReportSnapshot 时,尽管有惰性关联,我还是自动获取链接的 ReportContents。根据我读到的内容,因为我已经将我的关系设置为非可选关系,所以应该不会被 hppening =(

最佳答案

您使用的是哪个提供商? hibernate does not support lazy loading OneToOne 关联(至少不是开箱即用的)。该页面记录了一些您可以尝试的方法。

关于java - 具有共享 key (MapsId)和延迟加载问题的 OneToOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465515/

相关文章:

java - 如何在 java ArrayList<Long> 中进行二进制搜索?

java - 我需要将映射放入 hibernate 配置中吗

java - 我可以使用通用方法来访问 hibernate 中不同实体的数据吗

node.js - 为 Node.js 寻找延迟加载服务器/客户端 ActiveRecord ORM

f# - 懒惰..但在 F# 中急切的数据加载器

java - BuildConfig.DEBUG 与 ApplicationInfo.FLAG_DEBUGGABLE

java - 我正在尝试通过 React 构建 nativescript 但在构建中出现此错误?

java - hibernate @OneToOne(fetch = FetchType.LAZY) 不工作

jquery - 使用 jQuery 延迟加载插件和 tablesorter 插件与 addParser 方法?

java - 非法参数异常 : Type cannot be null