Onde chamar o Persistence.createEntityManagerFactory?  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
victorcosta
JavaGuru
[Avatar]

Membro desde: 07/01/2007 01:29:37
Mensagens: 220
Localização: Recife - PE
Offline

Estou usando JPA aqui e notei que o Persistence.createEntityManagerFactory() demora um certo tempo, acredito que por estar abrindo as conexões, é portanto inviável criar a cada request, e acho q nem é o certo

O que eu devo fazer? Colocar em um atributo estático/singleton?

Meu medo é que o banco costuma dar erro e fechar as conexões. Se estiver em um atributo estático e isso ocorrer, quando eu tentar acessar novamente o EntityManagerFactory vai dar certo?

Meu blog com tutoriais de jQuery
http://www.victorcisneiros.com/blog/

Outros projetos
http://www.todolistr.com
http://www.bibliasocial.com
http://www.dota2feedback.com/
http://www.posjogo.com.br/
[MSN]
cscleison
Smalltalk

Membro desde: 03/10/2011 09:09:26
Mensagens: 3
Offline

A criação de EntityManagers é bem custosa. Com certeza você não deve chamá-la no corpo do seu serviço. É um aplicativo padrão ou web?

Veja o material da K19. Tem uma apostila bem interessante de JPA2 com Hibernate.
Se não for web, eles indicam que você crie uma classe "JPAUtil" com um atributo estático para que você reaproveite em toda a aplicação.
http://www.k19.com.br/downloads/apostilas-java
victorcosta
JavaGuru
[Avatar]

Membro desde: 07/01/2007 01:29:37
Mensagens: 220
Localização: Recife - PE
Offline

É uma aplicação web

Meu blog com tutoriais de jQuery
http://www.victorcisneiros.com/blog/

Outros projetos
http://www.todolistr.com
http://www.bibliasocial.com
http://www.dota2feedback.com/
http://www.posjogo.com.br/
[MSN]
cscleison
Smalltalk

Membro desde: 03/10/2011 09:09:26
Mensagens: 3
Offline

Bom, ali na apostila também tem um exemplo pra aplicativo web.

Se for um serviço web, por exemplo com Axis2, a criação deve ocorrer durante a implantação do serviço.
Para este caso, veja aqui ou aqui.
victorcosta
JavaGuru
[Avatar]

Membro desde: 07/01/2007 01:29:37
Mensagens: 220
Localização: Recife - PE
Offline

Olhei a apostila, ela cita as opções de inicializar o EntityManagerFactory em um Filtro ou deixar o container gerenciar, mas ainda assim não consegui entender só com o que tem na apostila como implementar tudo. Como eu adquiriria a instância de EntityManagerFactory no código da aplicação por exemplo? E ainda tenho a dúvida, se o banco der erro e fechar as conexões (isso é comum aqui) eu ainda vou conseguir usar a mesma instância do EntityManagerFactory?

This message was edited 1 time. Last update was at 03/10/2011 10:09:48


Meu blog com tutoriais de jQuery
http://www.victorcisneiros.com/blog/

Outros projetos
http://www.todolistr.com
http://www.bibliasocial.com
http://www.dota2feedback.com/
http://www.posjogo.com.br/
[MSN]
leonardobhbr
Virtual Machine Man
[Avatar]

Membro desde: 10/08/2006 16:22:17
Mensagens: 530
Offline

Amigo de uma olhada sobre pool de conexão, existe varias opções
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team