我遇到了一個問題,即一對一的延遲加載在休眠狀態(tài)下不起作用。我已經(jīng)解決了它,但仍然無法正確理解會發(fā)生什么。我的代碼(延遲加載在這里不起作用,當我拉人時-地址也被獲?。篅Entitypublic class Person{ @Id @SequenceGenerator(name = "person_sequence", sequenceName = "sq_person") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "person_sequence") @Column(name = "id") private long personID; @OneToOne(mappedBy="person", cascade=CascadeType.ALL, fetch = FetchType.LAZY) private Adress address; //.. getters, setters}@Entitypublic class Address { @Id @Column(name="id", unique=true, nullable=false) @GeneratedValue(generator="gen") @GenericGenerator(name="gen", strategy="foreign", parameters=@Parameter(name="property", value="person")) private long personID; @PrimaryKeyJoinColumn @OneToOne private FileInfo person;}但是:如果我添加optional=falseOneToOne關系,則延遲加載效果很好!@OneToOne(mappedBy="person", cascade=CascadeType.ALL, optional = false, fetch = FetchType.LAZY)private Adress address;問題/完整性:請向我解釋optional=false注釋如何幫助實現(xiàn)延遲加載。PS我已經(jīng)閱讀了post1和post2的帖子,并了解了為什么簡單的OneToOne不能偷懶,但是我仍然無法掌握optional=false魔術(shù)。
- 2 回答
- 0 關注
- 437 瀏覽
添加回答
舉報
0/150
提交
取消