我有两个实体:
@Entity
@Table(name="tblrelease")
public class Release implements Serializable {
...
@OneToMany(mappedBy = "release")
public Set<ReleaseIssue> getIssues() {
return issues;
}
}
和
@Entity
@Table(name="tblissue")
public class ReleaseIssue implements Serializable {
...
@ManyToOne()
@JoinColumn(name = "relId", nullable = false)
public Release getRelease() {
return release;
}
}
如果我使用此设置,则会出现以下异常: org.hibernate.LazyInitializationException:无法懒惰地初始化角色集合:... 主要原因是jsp想要访问发布失败的问题,因为它想要在会话之外访问代理。
如果我使用FetchType = EAGER,我在发行版中有重复项。该集包含一个发布对象的大量重复项,因为发布对象具有问题。
答案 0 :(得分:0)
在DAO课程中,您只需使用
即可for(ReleaseIssue issue : release.getIssues(){
Hibernate.initialize(issue)
}
当您在jsp中检索它们时,这将初始化设置的释放对象。