2011-03-28 29 views
3

我的實體是:OneToOne,共享密鑰(MapsId)和懶加載問題

@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。據我讀過shudn't被hppening什麼,因爲我已經把我的關係是不可選=(

回答