11.07.2015 Views

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ENTITY MANAGERC A P Í T U L O3Segundo a especificação JPA, as instâncias das entidades são administradas pelos Entity Managers.As duas principais responsabilidades dos Entity Managers são gerenciar o estado dos objetos esincronizar os dados da aplicação e do banco de dados.EstadosÉ necessário conhecer o ciclo de vida das entidades para saber <strong>com</strong>o os objetos são administradospelos Entity Managers. Uma instância de uma entidade pode passar pelos seguintes estados:Novo (New): Um objeto nesse estado não possui uma identidade (chave) e não está associado a umEntity Manager. O conteúdo desse objeto não é enviado para o banco de dados. Toda instânciade uma entidade que acabou de ser criada <strong>com</strong> o <strong>com</strong>ando new encontra-se no estado new doJPA.Administrado (Managed): Um objeto no estado managed possui uma identidade e está associadoa um Entity Manager. A cada sincronização, os dados de um objeto no estado managed sãoatualizados no banco de dados.Desvinculado (Detached): Um objeto no estado detached possui uma identidade, mas não está associadoa um Entity Manager. Dessa forma, o conteúdo desse objeto não é sincronizado <strong>com</strong>o banco de dados.Removido (Removed): Um objeto no estado removed possui uma identidade e está associado a umEntity Manager. O conteúdo desse objeto será removido do banco de dados quando houveruma sincronização.Sincronização <strong>com</strong> o Banco de DadosUma sincronização consiste em propagar para o banco de dados as modificações, remoções einserções de entidades realizadas em memória através de um Entity Manager.Quando houver uma sincronização, as modificações realizadas no estado dos objetos managedsão propagadas para o banco de dados, assim <strong>com</strong>o os registros referentes aos objetos em estadoremoved são apagados do banco de dados. De acordo <strong>com</strong> a especificação, uma sincronização sópode ocorrer se uma transação estiver ativa.Cada Entity Manager possui uma única transação associada. Para recuperar a transação associadaa um Entity Manager, utilizamos o método getTransaction(). Uma vez que a transação foirecuperada, podemos ativá-la através do método begin().www.k19.<strong>com</strong>.br 43

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!