Olá pessoal!
Alguém já utilizou esse trio tudo ao mesmo tempo?
Estou tendo vários problemas, mas basicamente entre o Swing e o Hibernate do que com o Spring. Vou colocar um cenario bem simples do problema.
Na minha aplicacao temos uma entidade User, que tem uma coleção de Profiles. Essa coleção, utiliza a técnica de lazy load, pois não é toda hora que eu utilizo um usuário que vou precisar dos seus profiles.
O que está acontecendo é o seguinte, o Spring (que é quem fornece a sessionFactory do Hibernate pra mim), atacha na Thread a session utilizando a técnica do ThreadLocal. Quando instancio minha entidade User em uma Thread (Thread1, por exemplo), não tem problema. Agora, quando eu clico em um botão e esse botão necessita carregar os profiles do usuário para executar alguma tarefa, eu me deparo com a Exception net.sf.hibernate.LazyInitializationException, com a mensagem: Failed to lazily initialize a collection - no session or session was closed
O porque isso acontece?
Quando eu clico no botão, o Swing lança outra thread, a AWTEventQueue-0, e nessa thread, não está anexada a Session originalmente atrelada ao usuário, está uma outra session, e quando o Hibernate tenta carregar as entidades Profiles da entidade User nessa Session, ele não consegue.
Não sei se fui bem claro, mas alguém tem alguma idéia de como resolver isso?
Obrigado
Paulo Sigrist