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