Jpa - pdf
JPA – Java Persistence API
Prof. Regis Pires Magalhães/Ticiana Linhares
O que é?
• A utilização de códigos para bancos de dados dentro de uma aplicação agrava o problema da independência de plataforma.
• JPA abstrai os códigos para bancos de dados da nossa aplicação e permite escolher o banco de dados até enquanto o programa está rodando, permitindo mudar sua base sem alterar nada no seu código Java.
Problema
Java
POO – Programação Orientada a Objetos x BDR – Banco de Dados Relacionais
=
Tabelas
MR
Paradigmas Diferentes
Solução: ORM-> Mapeamento Objeto Relacional
•CoughPHP – ORM para PHP
•SQLObject – ORM para Python
•Hibernate – ORM para Java (JBoss)
•TopLink – ORM para Java (Oracle)
•OJB – ORM para Java (Apache)
MOR – Mapeamento Objeto
Relacional
• Também chamado de ORM
▫ Object Relational Mapping
• Resolve o famoso problema de “descompasso de impedância” (impedance mismatch) entre os mundos objeto e relacional.
• Pode ser usado para gerar as tabelas no banco de dados ou atualizar as restrições de integridade.
JDBC
• Trabalha no mesmo nível do banco de dados.
MOR – Mapeamento Objeto
Relacional
• O melhor dos dois mundos:
▫ Modelo Orientado a Objetos;
▫ Performance e confiabilidade dos bancos de dados relacionais. JPA - Características
• Portabilidade
• Persistência transparente
▫ Não há necessidade de implementação de interfaces especiais ou estender super classes. Usa POJOs – Plain Old
Java Objetcs.
▫ Atributos são persistidos.
▫ Não há necessidade de geração de código.
▫ Suporta tipos definidos pelo usuário
▫ Controle transparente de restrições de integridade
• Consulta orientada a objetos ou não
▫
▫
▫
▫
Query by Criteria
JPQL
Consultas dinâmicas e nomeadas
SQL Nativo
JPA
• Definida na JSR-220 (Java Specification
Requests) que especificou o EJB 3.0 (Enterprise
JavaBeans 3.0)
▫ Padroniza o mapeamento Objeto-Relacional em
Java.