Olá gente!
Pegando um gancho no tópico… Desenvolvo uma aplicação swing e a única forma que encontrei para poder preencher um JTable com dados de vários objetos, foi deixar a sessão aberta enquanto este JTable estivesse sendo utilizado. Deixem eu tentar explicar… Eu tenho as classes:
public class Cliente {
private String nome;
private Uf uf;
...
}
public class Uf {
private String nome;
...
}
Então meu TableDataModel que é responsável por preencher meu JTable, quanto vai procurar pela unidade de federação para mostrar, utiliza um clientes.get(row).getUf(), onde clientes é uma coleção de clientes.
Se fecho a sessão logo após retornar uma coleção de clientes, logo o TableDataModel lança uma exceção do tipo Lazy Initialization porque estou tentando acessar a Uf com a sessão fechada.
Destes casos, tenho vários outros no software, pedido em relação a cliente, item de pedido em relação a pedido, pagamento em relação a pedido e por aí vai.
Aí foi que enfrentei o problema de não ter minhas atualizações efetuadas pela aplicação prontamente disponíveis para a mesma aplicação rodando em outros computadores em rede. Foi então que me orientaram aqui no Guj a fechar sempre a sessão após as atualizações, mas não posso fazê-lo, pois senão meu objetos em ArrayList(collections) passam a apresentar as Lazy Initialization Exception.
Que faço? heheheh Obrigado