Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouVictoria Bonito Alterado mais de 9 anos atrás
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);
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.