Entity Manager X Persistence Context

5 respostas
sunwebdeveloper

Bom dia pessoal,
Estou estudando para a SCBCD(EJB 3.0) pelo livro Enterprise Java Beans(5º Edição).
Lendo o capitulo que fala de entity magager(pela forma que o livro coloca) me surgiu uma duvida.
Em certo momento ele fala de persistence context e entity manager, o entity manager sempre esteve bem claro em minha mente o seu papel, mas o persistence context não.
O livro está falando do ciclo de vida dos objetos persistentes, os estados gerenciado, não gerenciado e etc…
E que existem as duas formas de se trabalhar com persistence context, a forma transacionada pelo container e a forma estendida(Que creio que seja em aplicações standalone ou não gerenciadas por conteiner…)
O livro está em português e isso está atrapalhando bastante.
Agradeço uma melhor explicação sobre esses dois caras ai…
Valeu

5 Respostas

aluisiodsv

O EntityManager é uma das coisas do PersistenceContext.

a2_tech

Entity Manager é o mecanismo através do qual vc vai interagir com o banco de dados em si, ou seja, ele “sabe” como fazer as operações de CRUD, por exemplo.
Persistence Context é o conjunto de instâncias de entidades, na qual cada entidade tem uma instância correspondente gerenciada por um determinado Entity Manager.

Basicamente é isso! Espero ter ajudado.
Abraço

A2

sunwebdeveloper

Ola aluisiodsv, valeu…
Então, o contexto de persistência pode ter um ou mais entity managers, certo ?? E cada objeto deve ser único dentro de cada entity manager, certo ?? Então se houver dois entity managers em um mesmo persistence context, pode acontecer de o mesmo objeto estar carregado em cada um dos entity managers e sofrer alterações nos dois, certo ??
O que mais tem em um persistence context ???
Valeu !!

sunwebdeveloper

Oa a2_tech, valeu !!!
Então, em uma aplicação j233 onde o container faz o gerenciamento, existe um persistence context(Talvez por isso a anotação é @PersistenceContext) com vários entity managers ??? To meio confuso,
Obrigado.

aluisiodsv

Se estiver trabalhando com apenas um banco de dados vc terá apenas um EntityManager. Este tomará conta de tudo o que fizer no banco de dados, valendo para todas os seus objetos de entidade.

Outra parte do PersistenceContext são as transações.

edit: Obs: pelo que entendi, sobre o que o a2_tech disse, não é bem isso que é um PersistenceContext.

Criado 10 de março de 2011
Ultima resposta 10 de mar. de 2011
Respostas 5
Participantes 3