@OneToMany дублирует записи

У меня есть две сущности:

@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.зимовать.LazyInitializationException: не удалось лениво инициализировать коллекцию role:…
Основная причина заключается в том, что jsp хочет получить доступ к проблемам выпуска сбоя, потому что он хочет получить доступ к прокси-серверу вне сеанса.

Если я использую FetchType = Eagle, у меня есть дубликаты в выпусках. Набор содержит так много дубликатов одного объекта выпуска, как объект выпуска имеет проблемы.

1 ответ

  1. В вас DAO классы, вы можете просто использовать

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

    Это инициализирует set release objects, когда вы извлекаете их в jsp.