Quero só chamar sua atenção pra um detalhe: você está percebendo que seu ProdutoDAO não está fazendo nada mais do que delegar sua responsabilidade pro Session? Por que utilizar o DAO para o Hibernate se o Session já resolve tudo? Acho que o Session já é o DAO genérico que você está procurando.
O link acima mostra um DAO que gerencia transações. Cuidado com isso.
pablofaria
Aproveitando o assunto…
O que vocês costumam fazer?
Gerenciar as transações manualmente ou delegar isso para uma classe, Dao, filtro, interceptor, etc…
Eu tenho um filtro que gerencia isso pra mim, acho uma boa prática…
O que vocês acham disso?
tnaires
pablofaria:
Aproveitando o assunto…
O que vocês costumam fazer?
Gerenciar as transações manualmente ou delegar isso para uma classe, Dao, filtro, interceptor, etc…
Eu tenho um filtro que gerencia isso pra mim, acho uma boa prática…
O que vocês acham disso?
O filter a que você se refere é da Servlet API?
Se for, é legal, mas e se você precisar gerenciar suas transações em uma aplicação Swing?
Eu sempre quis fazer isso usando aspectos, mas nunca usei. No final, acabo gerenciando as transações na camada de aplicação mesmo. O ruim é ter que espalhar código de gerenciamento de transação pela camada toda.