| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2009 16:00:40
|
osmio
Java Ninja
Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline
|
Boa tarde!
Estou com algumas duvidas relacionadas a arquitetura de persistência utilizando o hibernate. Me deem uma forcinha!!!
Supondo que eu possua o cenario:
Meu cadastro de usuarios esta em um pacote;
Meu cadastro de produtos esta em outro pacote;
Minha camada de persistencia esta em ainda outro;
* Onde digo pacote, leia-se .jar, biblioteca, módulo
Na minnha estrutura do pacote de Usuarios, eu tenho os DAO´s que estendem uma interface(CRUD) generico que esta dentro do pacote de persistencia.
Porem, nenhuma implementacao relacionada a persistencia em si esta dentro do pacote de usuarios.
A mesma coisa acontece dentro do pacote de produtos, DAO´s que implementam a mesma interface, mas sem nenhuma implementacao.
A minha duvida eh a seguinte:
Como monto uma camada de persistencia autonoma que lide apenas com a interface dos DAO´s de qualquer que seja o módulo solicitando a persistencia?
Bom, ate o momento, a chamada aos metodos do DAO, estao funcionando, porem, eu nao tenho nenhum controle sobre a transacao dentro do pacote Usuario, por exemplo. Mesmo sabendo que o controle da transacao nao seria incumbencia do pacote de usuarios, eu necessito do controle nesse ponto pois:
Existem sistuações onde eu teria que incluir muitos usuarios de uma vez, (processo batch) e do jeito q esta atualmente, o commit eh realizado registro a registro, o que impacta profundamente na performance da camada de persistencia.
Gostaria de alguma sugestao nesse respeito.
Estou colocando abaixo algumas classes de controle da camada de persistencia.
A proposito, todos os modulos serao utilizados dentro ou fora de um container (ou seja, podem rodar na WEB ou em um desktop). Vi comentarios sugerindo a utilizacao de spring para controlar as transacoes, porem, nao sei se funciona adequadamente em ambientes fora de um appserver. Me deem opinioes sobre isso tb, por favor.
Seguem as classes:
GenericDAO
DAOFactory
HibernateDAOFactory
GenericHibernateDAO
Resumidamente, é isso!
Aguardo sugestões.
Desde já agradeço.
|
"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert |
|
|
 |
|
|
|
|
|
|