@OneToMany复制条目

时间:2016-11-04 11:45:43

标签: java hibernate one-to-many

我有两个实体:

@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,我在发行版中有重复项。该集包含一个发布对象的大量重复项,因为发布对象具有问题。

1 个答案:

答案 0 :(得分:0)

在DAO课程中,您只需使用

即可
for(ReleaseIssue issue : release.getIssues(){
    Hibernate.initialize(issue)
}

当您在jsp中检索它们时,这将初始化设置的释放对象。