JPA - Conexão abrindo e fechando

Oi pessoal!!!

Gostaria de uma sugestão de voces.
Ontem voces estão colocando essa parte do codigo de voces???

factory =Persistence.createEntityManagerFactory("BancoPU");
manager = factory.createEntityManager();

e essa:

factory.close();
manager.close();

Estou preocupada em não deixar a conexão aberta…

Obrigada!!!:wink:

Olá

A cada transação você deve criar um EntityManager, executar a operação e depois fechá-lo. Algo assim:

@PersistenceUnit
private EntityManagerFactory emf;

EntityManager em = emf.createEntityManager();
try {
  Pessoa pessoa = em.find(Pessoa.class, nome);
} finally {
  em.close();
}

O EntityManagerFactory é gerenciado pelo Container.

Att,

Andre

Obrigada!!!

Mas tem como vc me explicar melhor essa parte do EntityManagerFactory (Container) ? :oops:

Obrigada!!!

ynaue,

O EntityManagerFactory será criado via injeção de dependência, pelo container. Simplesmente o container lerá o arquivo META-INF/persistence.xml e criará o objeto de acordo com os dados que foram especificados lá. Depois armazenará o objeto no atributo ‘emf’:

@PersistenceUnit private EntityManagerFactory emf;

Você não precisa se preocupar com o EntityManagerFactory, a não ser que seu container não suporte o JEE 5.0. Na edição 39 da JM tem um artigo meu sobre o JPA, vale a pena dar uma olhada :wink:

[]'s

Andre