Gerenciando o objeto EntityManager em aplicação JavaSE  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
diogozero
JavaBaby
[Avatar]

Membro desde: 15/04/2010 23:46:49
Mensagens: 78
Localização: Cajazeiras, PB
Offline

Olá amigos do GUJ,

Estou desenvolvendo uma aplicação JavaSE e na camada de persistência eu estou usando JPA com Hibernate.
Toda vez que eu vou persistir alguma coisa no banco eu chamo um DAO que cria o EntityManager a partir do EntityManagerFactory e utiliza ele.
Mas não sei se isso é o melhor a se fazer, acho meio desperdicio instanciar um EntityManager diferente a cada operação com o banco.

O que eu quero saber é: Qual a melhor prática nesse caso?

Instanciar apenas um EntityManager durante toda a aplicação? Se sim, como seria essa implementação?

Diogo Dantas Moreira
Graduado em Análise e Desenvolvimento de Sistemas


Blog - Lattes - Twitter - Facebook
MSN: diogo.dmoreira@gmail.com
[Email] [WWW] [MSN]
rodrigo.ferreira
JavaGuru
[Avatar]

Membro desde: 28/08/2008 20:38:07
Mensagens: 200
Offline

Oi Diego, bom dia!

Isto depende muito, mas pode-se fazer sim.

Para fazer isto, você deve se basear em um padrão de projeto "GoF" chamado "Singleton", que é, em suma, um conceito muito simples: ao invés de instanciar um novo objeto todas as vezes, verifique se já existe um objeto instanciado (static) e retorne o próprio. Uma dica: Não use o DAO para criar um EntityManager, implemente uma SimpleFactory que ficará responsável exclusivamente para isto.

Veja um exemplo:



Uma dica: Se for possível, utilize um servidor de aplicações para gerenciar estas conexões, assim você evita problemas de concorrência e má utilização (e liberação) de recursos.

Aqui tem algumas dicas interessantes sobre design patterns: http://www.guj.com.br/articles/137

Abraço,

This message was edited 4 times. Last update was at 01/05/2011 09:46:07


Rodrigo Lopes Ferreira
Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5
Sun Certified Business Component Developer for the Java Platform, Enterprise Edition 5
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5
Sun Certified Programmer for the Java 2 Platform, Standard Edition 5
Tecnólogo em Informática com Ênfase em Gestão de Negócios - FATEC - Mococa - SP
Pós Graduando em Desenvolvimento de Sistemas em Software Livre - Universidade Católica de Brasília
[MSN]
romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

Sobre JPA com JSE, da uma olhada: utilizando-swing-com-jpahibernate

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
diogozero
JavaBaby
[Avatar]

Membro desde: 15/04/2010 23:46:49
Mensagens: 78
Localização: Cajazeiras, PB
Offline

Valeu galera, clareou um bocado a minhas idéias aqui =)

Diogo Dantas Moreira
Graduado em Análise e Desenvolvimento de Sistemas


Blog - Lattes - Twitter - Facebook
MSN: diogo.dmoreira@gmail.com
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team