2013-05-09 24 views
1

我試圖在級聯中映射兩個多對多關聯。我有三個類:用戶,用戶組和權限。第一個與第二個有多對多的關聯,而第二個與第三個有多對多的關聯。休眠 - 多對多關聯 - 不能同時獲取多個行包

我使用休眠4.2.0

@Entity 
@Table(name = "user") 
public class User implements Serializable { 
    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, targetEntity = org.weedea.bidupsys.user.logic.model.UserGroup.class) 
    @JoinTable(name = "UserGroupUser", joinColumns = { @JoinColumn(name = "userId") }, inverseJoinColumns = { @JoinColumn(name = "userGroupId") }) 
    private List<UserGroup> userGroupList = null; 
} 

@Entity 
@Table(name = "userGroup") 
public class UserGroup implements Serializable { 
    @ManyToMany(fetch = FetchType.EAGER, targetEntity = org.weedea.bidupsys.user.logic.model.Permission.class, cascade = { CascadeType.ALL }) 
    @JoinTable(name = "UserGroupPermission", joinColumns = { @JoinColumn(name = "userGroupId") }, inverseJoinColumns = { @JoinColumn(name = "permissionId") }) 
    private List<Permission> permissionList = null; 
} 

有了這個配置,我得到一個錯誤,因爲我嘗試加載同時在兩個渴望集合:

javax.servlet.ServletException: cannot simultaneously fetch multiple bags 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:229) 

如果我把取= FetchType .LAZY第二集合,我得到另一個錯誤:

failed to lazily initialize a collection of role: org.weedea.bidupsys.user.logic.model.UserGroup.permissionList, could not initialize proxy - no Session 

我怎麼能映射這兩個manyŧ o很多協會?感謝幫助!

回答