Introdução à JPA-Java Persistence API



Documentos relacionados
Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência

JPA Java Persistence API. Prof. Ramon Chiara

Mapeamento Lógico/Relacional com JPA

UFG - Instituto de Informática

JPA: Persistência padronizada em Java

Java Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações


Persistência com JPA2 e Hibernate TREINAMENTOS

Evento.java. package dominio;

Hibernate Envers Easy Entity Auditing

Java Persistence Query Language JPQL

Java Persistence API (JPA)

Persistência de Dados em Java com JPA e Toplink

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Padrão J2EE Data Access Object (DAO)

O EMF Eclipse Modeling Framework. Pasteur Ottoni de Miranda Junior

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

JPA e Hibernate por Thiago Faria e Normandes Junior

Tecnologias Java JDBC. Marcio Seiji Oyamada

Resolvendo objeto-relacional impedance mismatch com hibernate

Criar uma aplicação JPA2 com EclipseLink e H2

Aula 2 - Revisão de JPA (Java Persistence API)

Hibernate. Mapeamento O/R Marcio Aguiar Ribeiro

Módulo 03. Mapeando Associações/Relacionamentos. Raphaela Galhardo.

3 Classes e instanciação de objectos (em Java)

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Programação de Computadores - I. Profª Beatriz Profº Israel

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Programação por Objectos. Java

Capítulo 4. Packages e interfaces

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web

Novatec Editora Ltda. [2014].

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

POO Programação Orientada a Objetos. Classes em Java

Introdução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.

Orientação a Objetos com Java

Auditando persistência com JPA

BSI UFRPE Prof. Gustavo Callou

JPA (Java Persistence API) Marcos Kalinowski

Desmistificando o Hibernate Envers em 10 passos

Mapeando Entidades. Abaixo iremos mapear nossas classes. Fornecedor.java package entidades;

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

JPA - Java Persistence API. Entity. Entity Campos e Propriedades Entity Chaves Primárias Entity Associações. Entity Manager

JPA - Java Persistence API. Entity. Entity Campos e Propriedades Entity Chaves Primárias Entity Associações. Entity Manager

Classes Abstratas e Interfaces

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Noções sobre Objetos e Classes

Java Threads. Introdução

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

insfcanceof new public switch transient while byte continue extends for int null

Java TM e o Modelo de Objetos

Hibernate na sua aplicação JavaWeb

Análise de Programação

Universidade Federal de Uberlândia

Web Services utilizando JAX-WS

Artigo JavaMagazine (edição 58)

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Módulo 07 Características Avançadas de Classes

Linguagem de Programação I. Orientação a Objetos em Java

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Android Banco de Dados. Ivan Nicoli

Classes de Entidades Persistentes JDB

Enterprise Java Beans

Capítulo 1. Acesso a Banco de Dados com JDBC (Java Database Connectivity) e o Padrão de Projeto DAO (Data Access Object)

Desenvolvimento Web com Framework Demoiselle versão 1.0

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

Aula 2 - Revisão de JPA (Java Persistence API)

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

UNIVERSIDADE FEDERAL DO PARANÁ

Componentes no Java EE

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

HIBERNATE Criando um projeto em Java + Hibernate do zero

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

LINGUAGEM ORIENTADA A OBJETOS

public void setdata(data d) { data = d;

Persistência de dados com o

JPA Mini Livro Primeiros passos e conceitos detalhados

UFG - Instituto de Informática

Capítulo 3. Programação por objectos em Java

Programação Orientada a Objetos em Java

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Design Patterns (Factory Method, Prototype, Singleton)

Programação Orientada por Objetos

Aula 4. Carlos Eduardo de Carvalho Dantas

XML extensible Markup Language. Prof. Fellipe Aleixo

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Migrations for Java EVOLUINDO SEU BANCO DE MANEIRA INCREMENTAL

Implementação de Classe e Auto-Relacionamento em Java

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Transcrição:

Introdução à JPA-Java Persistence API Prof. Pasteur Ottoni de Miranda Jr. DCC PUC Minas www.pasteurjr.blogspot.com 1-Entidades São objetos de domínio de problema persistentes. Representam uma tabela em uma base de dados relacional, em que cada instância das mesmas corresponde a uma linha nessa tabela. Características da classe: Deve anotada com @Entity no topo Deve ter um construtor sem argumentos, público ou protegido, mas pode ter outros construtores Não deve ser final Podem ser extensíveis Deve implementar a interface serializable No cabeçalho da classe, as seguintes anotações Java devem ser colocadas: @Entity @Table(name="clientes", schema = "trabped") public class Cliente implements Serializable { 2-Campos persistentes Podem ser: Tipos primitivos do Java java.lang.string java.math.biginteger java.math.bigdecimal java.util.date java.util.calendar java.sql.date java.sql.time java.sql.timestamp User-defined serializable types byte[] Byte[] char[] Character[] Enumerated types Associação do campo com a coluna da tabela do banco de dados pela tag @Column

@Column(name="CODCLI") private int codcli; Seguem o padrão de JavaBeans (métodos getters e setters): public int getcodcli() { return this.codcli; public void setcodcli(int codcli) { this.codcli = codcli; 3-Chaves primárias Podem ser simples ou compostas (constituídas por mais de um campo da tabela). Tipos float não devem ser usados como tal. Simples: @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="CODPED") private int codped; A tag Id denota a chave primária ao campo CODPED. A tag GeneratedValue, confere a característica auto-incrementado ao mesmo. Compostas Cria-se uma classe que vai conter os campos correspondentes aos campos das chaves primárias. No exemplo abaixo, a classe ItensPedidoPK agrega os campos CODPED e CODPRO que compõem a chave primária. public class ItensPedidoPK implements Serializable { private static final long serialversionuid = 1L; @Column(name="CODPED") private int codped; @Column(name="CODPRO") private int codpro; public ItensPedidoPK() { public int getcodped() { return this.codped; public void setcodped(int codped) { this.codped = codped; public int getcodpro() { return this.codpro;

public void setcodpro(int codpro) { this.codpro = codpro; A classe ItensPedido abaixo embute essa chave primária como um campo: @Entity @Table(name="itens_pedido") public class ItensPedido implements Serializable { private static final long serialversionuid = 1L; @EmbeddedId private ItensPedidoPK id; @Column(name="QTDITEM") private int qtditem; @Column(name="VALORITEM") private float valoritem; 4-Multiplicidade 1-n (one to many) Por exemplo, clientes (1) para pedidos (n): @OneToMany(mappedBy="cliente") private Set<Pedido> pedidos; Por exemplo, pedidos(1) para itenspedido (n): @OneToMany(mappedBy="pedido") private Set<ItensPedido> itenspedidos; n-1 (many to one) Por exemplo, a recíproca de clientes para pedidos: @ManyToOne @JoinColumn(name="CODCLI") private Cliente cliente; 5-Acesso às classes entidade 5.1-Gerenciadores de entidade Gerenciadores de entidade controlam a criação e remoção de classes entidade: private EntityManagerFactory emf; private EntityManager em; private String PERSISTENCE_UNIT_NAME = "UNIDADETESTE";

5.2-Unidades de Persistência Arquivo XML que descreve estrutura de classes de entidade e dados de acesso ao banco de dados. <?xml version="1.0" encoding="utf-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="unidadeteste"> <class>pedent.cliente</class> <class>pedent.itenspedido</class> <class>pedent.itenspedidopk</class> <class>pedent.pedido</class> <class>pedent.produto</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/trabped"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.target-database" value="database"/> </properties> </persistence-unit> </persistence> 5.3- Instância de classes entidade Cliente cliente = new Cliente(); Cliente.setCodCli( 0001 ); Int codcli = cliente.getcodcli(); 6- Queries Criar a query: Pedido p = (Pedido)em.createQuery("Select p from Pedido p where p.codped=1").getsingleresult(); Acesso ao objeto retornado pela query: Set<ItensPedido> ip = p.getitenspedidos() Iterator itip = ip.iterator(); while (itip.hasnext()){ ItensPedido item = (ItensPedido)itip.next(); Produto produto = item.getproduto(); Pedido pedido = item.getpedido(); Cliente cliente = pedido.getcliente(); System.out.println ("Pedido: "+pedido.getcodped() ); System.out.println("Data: "+pedido.getdatped()); System.out.println("Cliente: "+cliente.getnomcli()); System.out.println("Produto: " + produto.getnompro());

System.out.println("Quantidade: " + item.getqtditem()); System.out.println("Valor unitario: "+ item.getvaloritem());