olá turma,
estou usando JPA e tow usando associacao preguicosa… (lazy), soh q como meu controller faz a consulta e retorna o pojo da entidade ele auto fexa a sessão… ou melhor no metodo q faz a consulta no banco ele abre e fexa apos a conclusao… mas soh q eu preciso tah com essa sessao abertap ra acessar as associacoes! tem ideia de resolver isso? bom, minha ideia eh adicionar os metodos open e close no controller e assim na camada view ele gerencia qnd abre e qnd fexa o msm… ou então criar VO independente dos pojos (retrabalho). OBS: desligando o lazy acaba dando erro por ter muitas associações.
JPA associação preguicosa (Lazy)
5 Respostas
Crie um Filter na sua aplicação para abrir e fechar a session, assim até o fim da requisição a Session estará aberta.
Quem iriah usar esse filter o controller. mas não é obrigação do controller abrir e fexar sessão de persistencia de dados. tow pensando em criar DTO’s separados dos pojos das entidades. mas eu axo isso burrice pq um pojo eh um transfer object!
Não necessariamente. Veja: http://hibernate.org/43.html
Interessante o filter gui. então não seria um erro conceitual criar metodos de gerenciamento da sessão no controller certo? e até creio que pra manutenção , migração algo do tipo vai está mais simples.
Valeu pela dica.
Calma 
Repare o seguinte, o controller é um… digamos… controlador
Ele é burro, não sabe fazer nada, ele simplesmente delega coisas para a camada de negócio da sua aplicação e organiza os dados para que a view seja montada. SÓ ISSO.
Para mais prá[gma]tico, o negócio tem que ser de tal forma que se um dia você resolvesse criar um interface swing e quisesse usar a mesma camada de negócios sem mudar um fio de cabelo da aplicação deveria ser possĩvel!
Então se você coloca este tipo de lógica no controller ele deixa de ser só um controller e fica “inteligente demais para o meu gosto”.
Portanto conclui-se que não é certo gerenciar a abertura de sessions no controller.