Estou usando o Hibernate em um projeto e estou tendo um certo problema com as Sessions usadas para trazer ou persistir dados.
Cheguei a pesquisar sobre “boas praticas” na utilização de Sessions e vi que o correto é fechar as Sessions sempre que possível, no entanto isto me causa problema em relacionamentos mapeados como LAZY na aplicação, onde ocorre um erro por falta de Session quando a aplicação tenta “buscar” um registro via Lazy após a session ser fechada.
Em minha SessionFactory cheguei a implementar o uso de ThreadLocal para melhorar o uso das Sessions.
Gostaria de saber quando o uso de Lazy é apropriado, pois se eu realizar o mapeamento via EAGER o problema seria resolvido nestes casos.
E no caso de manter o Lazy, como ficaria o uso da Session em meu DAO?
Abro, uso e fecho como de costume ou teria que fazer de forma diferente?
Desde o último post neste tópico o cenário mudou um pouco… Passei a usar Spring para “gerenciar” os recursos do Hibernate e encontrei algumas possibilidades para resolver o problema. Uma delas é o pattern “Open Session in View” do Spring, o problema agora é sua implementação e integração com o BlazeDS. Uma outra possibilidade é o auxilio provido pelo “dpHibernate”.
Alguém já realizou algo do tipo em ambiente Flex + BlazeDS + Spring + Hibernate?
Já faz algum tempo que havia resolvido este tópico, porém não estava com tempo para postar a solução e fechar o tópico.
Sem mais delongas, a solução que encontrei foi usar o pattern “Open Session in View” do Spring.
Sendo assim, no meu web.xml foi adicionado o seguinte filtro: