Nobres colegas,
Estou desenvolvendo um projeto utilizando Struts + Hibernate, este não contem nada de especial, apenas alguns cadastros. Porem venho encontrando a cada dia uma série de complicações na utilização do hibernate. Acredito que isto ocorra por EU estar complicando a arquitetura, espero que vc’s possam iluminar meus pensamentos e me ajudar a não desistir dele 
:arrow: Meu maior problema tem sido com Sessions do hibernate. Em um primeiro momento para cada consulta e/ou transação eu abria e encerrava uma Session. Isso funcionou até que me deparei com objetos utilizando lazy, os quais quando iam ser exibidos na camada de visão (JSP) recebia um LazyInitializationException devido a Session ter sido fechada. Segundo li em alguns textos utilizar lazy=“false” causa uma grande perca de performance do hibernate e não seria um boa solução. Procurando por outra solução me deparei com Open Session In View (OSIV).
POREM utilizando o OSIV me deparei com um outro problema:
:arrow: Quando por ex. seleciono um registro para editar, a action carrega ele sem problemas, mas quando vai coloca-lo no escopo de request com método setAttribute para ser editado em um JSP, este faz uma cópia do objeto só que não como proxy, e sim como um objeto não instanciado com valores nulos, invés de por uma referência para o endereço de memória do objeto recuperado pelo hibernate.
:?: Minha classe HibernateUtil, da qual eu solicito as Sessions esta utilizando ThreadLocal segundo li em um post aqui no GUJ é citado um problema entre ThreadLocals e Request, mas não vi uma explicação para tal ocorrer.
:?: ThreadLocal & OSIV, pelo oque estive pesquisando são duas soluções diferentes para gerênciar Session, contudo eu deveria estar utilizando uma ou outra e não ambas juntas, correto ?

