OneToOne с общим ключом (MapsId) и проблемой отложенной загрузки - PullRequest
3 голосов
/ 29 марта 2011

Мои объекты:

@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 - он не должен влиять на процесс. Что я наблюдаю: когда я загружаю ReportSnapshot по id из менеджера сущностей, я автоматически получаю связанный ReportContents, несмотря на ленивую связь Согласно тому, что я прочитал, это не должно произойти, так как я установил, что мои отношения не являются обязательными = (

1 Ответ

1 голос
/ 01 августа 2012

Каким провайдером вы пользуетесь?Hibernate не поддерживает отложенную загрузку ассоциаций OneToOne (по крайней мере, не из коробки).На этой странице описаны некоторые подходы, которые вы можете попробовать.

...