Boa tarde,
Estou com um problema que não estou conseguindo resolver. Já pesquisei na web e não consegui encontrar uma solução. Espero que alguém já tenha passado por isso e possa me ajudar.
Tenho duas classes com relacionamento @ManyToMany (definções abaixo).
User
@ManyToMany(mappedBy="userList", fetch=FetchType.LAZY)
private Set<UserGroup> userGroupList = new HashSet<UserGroup>();
UserGroup
@ManyToMany(fetch=FetchType.LAZY, cascade= {CascadeType.DETACH, CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name="USER_GROUP_RELAC",
joinColumns={@JoinColumn(name="OID_USER_GROUP")},
inverseJoinColumns={@JoinColumn(name="OID_USER")})
private Set<User> userList = new HashSet<User>();
Como podem ver ambas as listas eu coloquei como fetch=FetchType.LAZY pois não quero sobrecarregar a aplicação. Quando vou buscar o meu usuário pelo id (que só irá retornar 1 registro) uso a EJB QL abaixo:
@NamedQuery(name="UserById",
query="FROM User u LEFT JOIN FETCH u.emailList " +
"LEFT JOIN FETCH u.userGroupList " +
"where u.user_id like :user_id"),
Mesmo utilizando o LEFT JOIN FETCH é retornado o erro abaixo e não sei mais oq fazer.
failed to lazily initialize a collection of role: content.UserGroup.userList, no session or session was closed
O LEFT JOIN FETCH não deveria carregar minhas coleções? Para evitar o erro da sessão já estar fechada? Alguem sabe como me ajudar?
Fico no aguardo.
Obrigado.
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br







0 comentários:
Postar um comentário