A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Componentes Avançados JPA - API Prof. Leandro Rubim

Apresentações semelhantes


Apresentação em tema: "Componentes Avançados JPA - API Prof. Leandro Rubim"— Transcrição da apresentação:

1

2 Componentes Avançados JPA - API Prof. Leandro Rubim profleandror@fiap.com.br leandro.fiap@gmail.com

3 2 Agenda  JPA  EntityManager  Definições  Contexto Persistência  Obtendo um EntityManager  Transações  API EntityManager

4 3 JPA  Conjunto de anotações para mapeamento O/R;  API para persistência de entidades;  Linguagem de consultas EJB-QL;  Especificação independente de fabricante;  Utilizaremos a implementação Hibernate: –Hibernate Core; –Hibernate Annotations; –Hibernate Entity Manager;

5 4 Entity Manager  Unidade central para gerenciamento de entidades na JPA através de uma API padronizada;  Responsável pela criação, atualização, remoção e consulta às entidades (CRUD);  Controle de transações;  Gerenciamento de cache;

6 5 Definições  Unidade de Persistência: –conjunto fixo de classes mapeadas para o banco de dados (persistence.xml);  Contexto de Persistência: –conjunto de instâncias de entidades gerenciadas de um Entity Manager;  Entidades Gerenciadas: –quando entidades estão associadas a um contexto de persistência; –alterações no estado das entidades são sincronizadas com o banco de dados; –ao fechar um contexto de persistência, todas suas instâncias de entidades associadas tornam-se não gerenciadas;  Entidades Não Gerenciadas: –entidades não associadas a um contexto de persistência (por exemplo quando são instanciadas); –alterações nas entidades não se refletem no banco de dados;

7 6 Contexto Persistência  Ponte entre entidades na memória e banco de dados;  Gerenciada por um Entity Manager; Entidade BD Contexto Entity Manager

8 7 Estados Entidade  new  instância da entidade criada em memória mas não associada a um contexto de persistência e não possui id equivalente no banco de dados;  managed  tem um id no banco de dados e está associada a um contexto de persistência;  detached  tem um id no bando de dados mas não está associada ao contexto de persistência;  removed  instância da entidade associada a um contexto de persistência mas está programada para ser removida do banco de dados;

9 8 Diagrama de Estado Entidade new new() managed removed detached persist() remove() persist() Contexto fechado Commit Serialização merge() refresh()

10 9 Obtendo um EntityManager  Utilizar a anotação @PersistenceContext para obter, via injeção de dependência, uma instância que implemente a interface EntityManager ;  Exemplo: public class ClienteBean... { @PersistenceContext EntityManager manager = null; }

11 10 API EntityManager  persist (Object entity): –enfileira entidade para ser inserida uma entidade no banco de dados e a torna gerenciada; –Exemplo: VeiculoEntity veiculo = new VeiculoEntity(); veiculo.setPlaca( “ DHZ-5678 ” ); veiculo.setModelo( “ Fusca ” ); manager.persist(veiculo);

12 11 API EntityManager  merge (Object entidade): –atualiza uma entidade não gerenciada no contexto de persistência; –Caso já exista uma entiade gerenciada com o mesmo id  realiza uma operação de UPDATE; –Caso contrário  realiza uma operação de INSERT; –A entidade torna-se gerenciada; –Exemplo: VeiculoEntity veiculo = new VeiculoEntity(); veiculo.setPlaca( “ DHZ-5678 ” ); veiculo.setModelo( “ Fusca ” ); manager.merge(veiculo);

13 12 API EntityManager  refresh (Object entidade): –Atualiza dados da entidade com base no banco de dados; –Valores não persistidos são descartados; –A entidade torna-se gerenciada; –Exemplo: VeiculoEntity veiculo = new VeiculoEntity(); veiculo = manager.find(VeiculoEntity.class, 1); veiculo.setPlaca( “ DHZ-5678 ” ); veiculo.setModelo( “ Fusca ” ); manager.refresh(veiculo);

14 13 API EntityManager  find (Class classeEntidade, Object PK): –localiza uma entidade através de sua chave primária (PK); –Retorna null caso a entidade não seja localizada; –Uma entidade localizada torna-se automaticamente gerenciada; –Exemplo: // Busca veiculo com id igual a 10 VeiculoEntity veiculo = manager.find(VeiculoEntity.class, 10); veiculo.setPlaca( “ HHH-7777 ” );

15 14 API EntityManager  remove (Object entidade): –Remove uma entidade acoplada; –Para excluir entidades desacopladas primeiro deve-se localizá-la através do método find ou getReference ; –Exemplo: VeiculoEntity veiculo = manager.find(VeiculoEntity.class, 10); manager.remove(veiculo);


Carregar ppt "Componentes Avançados JPA - API Prof. Leandro Rubim"

Apresentações semelhantes


Anúncios Google