【问题标题】:OneToOne with shared key (MapsId) and lazy loading problemOneToOne 与共享密钥 (MapsId) 和延迟加载问题
【发布时间】:2011-03-28 21:53:12
【问题描述】:

我的实体是:

@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 = "";
  ...
}

这里的轻实体类来自 gilead 项目,旨在支持 gwt 序列化 - 它不会影响流程。我观察到的是:当我从实体管理器按 id 加载 ReportSnapshot 时,尽管存在延迟关联,但我会自动获取链接的 ReportContents。根据我读到的内容,这不会发生,因为我已将我的关系设置为非可选 =(

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 2011-05-22
      • 2018-04-17
      • 1970-01-01
      • 2023-03-13
      • 2021-04-23
      相关资源
      最近更新 更多