Mapeando Relacionamentos entre Entidades JPA. Prof. Fellipe Aleixo
|
|
- Fernando Palma Felgueiras
- 7 Há anos
- Visualizações:
Transcrição
1 Mapeando Relacionamentos entre Entidades JPA Prof. Fellipe Aleixo
2 Relacionamento entre Entidades É natural em um modelo de domínio termos relacionamento entre classes conceituais Como os relacionamentos do modelo de objetos são mapeados para o modelo relacional? Importante lembrar como duas tabelas são relacionadas no modelo relacional Uma mesma coluna é definida em duas tabelas, os valores dessa coluna definem o relacionamento JPA permite mapear tais relacionamentos
3 Tipos de Relacionamento 1. Unidirecional de um para um Ex.: um usuário com um endereço 2. Bidirecional de um para um Ex.: um empréstimo com uma devolução 3. Unidirecional de um para muitos Ex.: um usuário com um número de telefone 4. Bidirecional de um para muitos Ex.: uma editora com um livro
4 Tipos de Relacionamento 5. Unidirecional de muitos para um Ex.: um empréstimos com um atendente 6. Unidirecional de muitos para muitos Ex.: uma reserva com um livro 7. Bidirecional de muitos para muitos Ex.: um autor com um livro
5 Relacionamento Unidirecional de Um para Um Exemplo: um usuário possui um endereço O usuário conhece o endereço, mas o endereço não conhece a qual usuário pertence
6 Relacionamento Unidirecional de Um para Um Modelo de Programação: Navegação em apenas uma via um dos beans de entidade define uma propriedade que permite que ele obtenha o outro bean por relacionamento No nosso exemplo, a classe Usuario existirão os métodos getendereco() e setendereco() para acessar a entidade Endereco Vejamos a seguir o mapeamento necessário na classe Usuario
7 Relacionamento Unidirecional de Um para Um package public class Usuario implements java.io.serializable { private ENDERECO_ID ) public Endereco getendereco() { return endereco; public void setendereco(endereco novo) { endereco = novo;
8 Relacionamento Unidirecional de Um para Um Interface JoinColumn: Semelhante à Ex.: define a coluna da tabela CLIENTE que referencia a chave primária de tabela ENDERECO JoinColumn { String name() default ; String referencedcolumnname() default ; boolean unique() default false; boolean nullable() default true; boolean insertable() default true; boolean updatable() default true; String columndefinition() default ; String table() default ;
9 Relacionamento Unidirecional de Um para Um Interface OneToOne: OneToOne { Class targetentity() default void.class; CascadeType[] cascade() default {; FetchType fetch() default EAGER; boolean optional() default true; String mappedby() default ; targetentity: entidade com a qual há um relacionamento (descoberto pela propriedade) fetch: carregamento sob demanda ou imediato
10 Relacionamento Unidirecional de Um para Um Interface OneToOne: optional: especifica se o relacionamento pode ser nulo cascade: especifica o mecanismo de propagação de ações (remoções, atualizações, etc.) mappedby: usado para relacionamentos bidirecionais
11 Relacionamento Unidirecional de Um para Um Equivalente em XML: <entity-mappings> <entity class= exemplo.biblioteca.modelo.usuario access= PROPERTY > <attributes> <id name= id > <generated-value/> </id> <one-to-one name= endereco targetentity= exemplo.bilioteca.modelo.endereco fetch= LAZY optional= true > <cascade>all</cascade> <join-column name= ENDERECO_ID /> </one-to-one> </attributes> </entity> </entity-mappings>
12 Relacionamento Unidirecional de Um para Um O mapeamento podem ser feito usando-se valores iguais para as chaves das public class Usuario implements java.io.serializable { private public Endereco getendereco() { return endereco; public void setendereco(endereco novo) { endereco = novo;
13 Relacionamento Unidirecional de Um para Um Mapeamento de relacionamento padrão: package public class Usuario implements java.io.serializable { private Endereco public Endereco getendereco() { return endereco; public void setendereco(endereco novo) { endereco = novo;
14 Relacionamento Bidirecional de Um para Um Em determinados relacionamentos é necessário o conhecimento nos dois sentidos Um empréstimo conhece a devolução associada e a devolução sabe a qual empréstimo ela é referente No banco de dados os esquemas são equivalentes ao relacionamento unidirecional No modelo relacional não há a noção de direção dos relacionamentos
15 Relacionamento Bidirecional de Um para Um Esquema relacional segundo o exemplo: Para mapear o relacionamento entre as entidades Emprestimo e Devolucao, precisamos declarar as respectivas propriedades nas classes bean
16 Relacionamento Bidirecional de Um para public class Emprestimo implements java.io.serializable { private int id; private date dataemprestimo; private boolean ativo; private DEVOLUCAO_ID ) public Devolucao getdevolucao() { return devolucao; public void setdevolucao(devolucao novo) { devolucao = novo;
17 Relacionamento Bidirecional de Um para public class Devolucao implements java.io.serializable { private int id; private date datadevolucao; private Emprestimo devolucao ) public Emprestimo getemprestimo() { return emprestimo; public void setemprestimo(emprestimo novo) { emprestimo = novo;
18 Relacionamento Bidirecional de Um para Um Nos relacionamentos bidirecionais há o conceito de entidade possuidora do relacionamento No exemplo a entidade possuidora do relacionamento é Emprestimo O método setemprestimo() da entidade Devolucao não causa alteração no relacionamento Para alterar o empréstimo ao qual está associada uma devolução: Executaríamos o método setdevolucao() da entidade Emprestimo original passando null E depois executar o método setdevolucao() da nova entidade Emprestimo
19 Relacionamento Bidirecional de Um para Um Mapeamento de relacionamento public class Emprestimo implements java.io.serializable { private int id; private date dataemprestimo; private boolean ativo; private Devolucao public Devolucao getdevolucao() { return devolucao; public void setdevolucao(devolucao novo) { devolucao = novo;
20 Relacionamento Bidirecional de Um para Um Mapeamento de relacionamento public class Devolucao implements java.io.serializable { private int id; private date datadevolucao; private Emprestimo devolucao ) public Emprestimo getemprestimo() { return emprestimo; public void setemprestimo(emprestimo novo) { emprestimo = novo;
21 Relacionamento Unidirecional de Um para Muitos Na prática, um relacionamento de um para muitos unidirecional geralmente é mapeado com uma tabela de junção intermediária
22 Relacionamento Unidirecional de Um para Muitos Para o mapeamento deste tipo de relacionamento é utilizada a OneToMany { Class targetentity() default void.class; CascadeType[] cascade() default {; FetchType fetch() default LAZY; String mappedby() default ;
23 Relacionamento Unidirecional de Um para public class Usuario implements java.io.serializable { private Collection<Telefone> telefones = USUARIO_ID ) public Collection<Telefone> gettelefones() { return telefones; public void setendereco(collection<telefone> nova) { telefones = nova;
24 Relacionamento Unidirecional de Um para public class Telefone implements java.io.serializable { private int id; private String ddd; private String numero; private int tipo; // Construtor padrão requerido public public int getid() { return id;
25 Relacionamento Unidirecional de Um para Muitos Um outro mapeamento possível para este tipo de relacionamento é através de uma tabela de JoinTable { String name() default ; String catalog() default ; String schema() default ; JoinColumn[] joincolumns() default {; JoinColumn[] inversejoincolumns() default {; UniqueContraint[] uniqueconstraints() default {;
26 Relacionamento Unidirecional de Um para public class Usuario implements java.io.serializable { private Collection<Telefone> telefones = USUARIO_TELEFONE, joincolumns={@joincolumn(name= USUARIO_ID ), inversejoincolumns={@joincolumn(name= TELEFONE_ID )) public Collection<Telefone> gettelefones() { return telefones;
27 Relacionamento Unidirecional de Um para Muitos Mapeamento de relacionamento padrão: package public class Usuario implements java.io.serializable { private Collection<Telefone> telefones = new public Collection<Telefone> gettelefones() { return telefones;
28 Relacionamento Unidirecional de Muitos para Um Ocorre quando vários beans de entidade referenciam um único bean de entidade, mas o bean ignora esse relacionamento
29 Relacionamento Unidirecional de Muitos para Um Exemplo: cada empréstimo tem o conhecimento de qual atendente o realizou, mas atendente não necessita conhecer todos os empréstimos que realizou
30 Relacionamento Unidirecional de Muitos para Um Relacionamentos de muitos para um são descritos com a As definições de atributo são semelhantes àquelas da ManyToOne { Class targetentity() default void.class; CascadeType[] cascade() default {; FetchType fetch() default EAGER; boolean optional() default true; No caso do exemplo: será incluída uma propriedade Atendente na entidade Emprestimo
31 Relacionamento Unidirecional de Muitos para Um A entidade Atendente não sofre public class Emprestimo implements java.io.serializable { private int id; private Date dataemprestimo; private ATENDENTE_ID ) public Atendente getatendente() { return atendente; public void setatendente(atendente nova) { atendente = nova; 31
32 Relacionamento Unidirecional de Muitos para Um Mapeamento de relacionamento public class Emprestimo implements java.io.serializable { private int id; private Date dataemprestimo; private boolean ativo; private Atendente public Atendente getatendente() { return atendente; public void setatendente(atendente nova) { atendente = nova;
33 Relacionamento Bidirecional de Um para Muitos Perceba que um relacionamento bidirecional de muitos para um é equivalente ao relacionamento bidirecional de um para muitos Um bean de entidade mantém uma propriedade de relacionamento baseada em coleção de outro bean de entidade Cada bean de entidade na coleção mantém uma referência de volta ao bean agregador Exemplo: é interessante que uma editora conheça os livros que publicou, e que o livro também conheça qual editora que o publicou
34 Relacionamento Bidirecional de Um para Muitos Vejamos o esquema de banco de dados relacional equivalente:
35 Relacionamento Bidirecional de Um para Muitos A programação do lado muitos public class Livro implements java.io.serializable { private int id; private String titulo; private String isbn; private EDITORA_ID ) public Editora geteditora() { return editora; public void seteditora(editora nova) { editora = nova;
36 Relacionamento Bidirecional de Um para Muitos A programação do lado um public class Editora implements java.io.serializable { private int id; private String nome; private Collection<Livro> livros = new editora ) public Collection<Livro> getlivros() { return livros; public void setlivros(collection<livro> novos) { livros = novos;
37 Relacionamento Bidirecional de Um para Muitos Como todo relacionamento bidirecional, deve haver um lado possuidor do relacionamento Atualmente a JPA requer que o lado muitos seja o possuidor do relacionamento Significado dessa limitação no exemplo: Para mudar (e que essa mudança seja refletida no banco de dados) o relacionamento de uma Editorae um Livro deve usar o seteditora() de Livro
38 Relacionamento Bidirecional de Muitos para Muitos Ocorre quando muitos beans mantêm uma propriedade de relacionamento baseada em coleção com um outro bean de entidade E cada bean referenciado nessa coleção mantém uma propriedade de relacionamento baseado em coleção de volta aos beans agregadores Exemplo: um dado livro pode possuir vários autores e um autor pode ter escrito vários livros
39 Relacionamento Bidirecional de Muitos para Muitos Esquema de banco de dados relacional:
40 Relacionamento Bidirecional de Muitos para Muitos Os relacionamentos são logicamente definidos com a ManyToMany { Class targetentity() default void.class; CascadeType[] cascade() default {; FetchType fetch() default LAZY; String mappedby() default ;
41 Relacionamento Bidirecional de Muitos para Muitos A entidade Autor deverá definir uma propriedade coleção de entidades public class Autor implements java.io.serializable { private int id; private String nome; private Set<Livro> livros = LIVRO_AUTOR, joincolumns={@joincolumn(name= AUTOR_ID ), inversejoincolumns={@joincolumn(name= LIVRO_ID )) public Set<Livro> getlivros() { return livros; public void setlivros(set<livro> novos) { livros = novos;
42 Relacionamento Bidirecional de Muitos para Muitos O relacionamento livros é declarado como uma java.uitil.set O tipo Set não armazena objetos duplicados Como ocorre nos demais relacionamentos bidirecionais há um lado possuidor Nesse caso a entidade Autor Como possuidor do relacionamento pode definir a tabela de junção a ser utilizada
43 Relacionamento Bidirecional de Muitos para Muitos Mapeamento de relacionamento padrão na entidade public class Autor implements java.io.serializable { private int id; private String nome; private Set<Livro> livros = new public Set<Livro> getlivros() { return livros; public void setlivros(set<livro> novos) { livros = novos;
44 Relacionamento Bidirecional de Muitos para Muitos A entidade Livro deverá definir uma propriedade coleção de entidades public class LIvro implements java.io.serializable { private int id; private String titulo; private String isbn; private Collection<Autor> autores = new livros ) public Collection<Autor> getautores() { return autores; public void setautores(collection<autor> novos) { autores = novos;
45 Relacionamento Unidirecional de Muitos para Muitos Ocorre quando muitos beans mantêm um relacionamento baseado em coleção com um outro bean Mas, o referido bean na coleção não mantém um relacionamento baseado em coleção de volta aos beans agregadores Exemplo: uma reserva pode ser realizada para vários livros, e embora que um mesmo livro possa ser reservado mais de uma vez ele não precisa conhecer tais reservas
46 Relacionamento Unidirecional de Muitos para Muitos Vejamos o esquema de banco de dados relacional equivalente:
47 Relacionamento Unidirecional de Muitos para Muitos O campo de relacionamento baseado em coleção de Livro é adicionado em public class Reserva implements java.io.serializable { private int id; private Date datareserva; private Usuario usuario; private Set<Livro> livros = RESERVA_LIVRO, joincolumns={@joincolumn(name= RESERVA_ID ), inversejoincolumns={@joincolumn(name= LIVRO_ID )) public Set<Livro> getlivros() { return livros; public void setlivros(set<livro> novos) { livros = novos;
48 Relacionamento Unidirecional de Muitos para Muitos A entidade Livro não é alterada em nada Mapeamento de relacionamento public class Reserva implements java.io.serializable { private int id; private Date datareserva; private Usuario usuario; private Set<Livro> livros = new public Set<Livro> getlivros() { return livros; public void setlivros(set<livro> novos) { livros = reservas ) public Usuario getusuario() { return usuario; public void setusuario(usuario novo) { usuario = novo;
49 Relacionamentos Baseados em Lista Ordenada Podem ser utilizadas as interfaces: List, Set, Map e Collection (java.util.*) para mapear relacionamentos baseados em coleção Particularidades do uso de List: Representa uma coleção não ordenada e que permite duplicatas Pode possibilitar a capacidade adicional de ordenar os elementos da coleção com base em um conjunto específico de critérios Permite declarar uma cláusula JPQL caso não seja especificado: valerá a ordem crescente da chave primária
50 Relacionamentos Baseados em Lista public class Reserva implements java.io.serializable { private int id; private Date datareserva; private Usuario usuario; private List<Livro> livros = isbn ASC RESERVA_LIVRO, joincolumns={@joincolumn(name= RESERVA_ID ), inversejoincolumns={@joincolumn(name= LIVRO_ID )) public List<Livro> getlivros() { return livros; public void setlivros(list<livro> novos) { livros = novos;
51 Relacionamentos Baseados em Mapas Particularidades do uso de Map: O provedor de persistência cria um mapa com chave sendo uma propriedade específica da entidade relacionada e o valor como sendo a própria entidade O atributo name() indica o nome da propriedade da entidade a ser usado como chave no mapa Se o name() não for especificado é usada a chave primária da entidade como chave no mapa
52 Relacionamentos Baseados em public class Usuario implements java.io.serializable { private Map<String, Telefone> telefones = new USUARIO_ID numero ) public Map<String, Telefone> gettelefones() { return telefones; public void setlivros(map<string, Telefone> novos) { telefones = novos;
53 Entidades Desacopladas e FetchType Ao trabalhar com entidades relacionadas devemos lembrar alguns detalhes: 1. quando recuperamos uma dada entidade alguns relacionamentos podem não ter sido inicializados 2. essa entidade pode ser desacoplada quando terminar o contexto de persistência 3. se a propriedade do relacionamento for acessada quando a entidade estiver desacoplada geralmente temos uma exceção ou uma resposta incorreta
54 Propagação de Operações Sobre Entidades em Cascata Nas anotações de relacionamento vimos que existe o atributo cascade() Esse atributo permite configurar que operações realizadas sobre um entidade sejam propagadas em cascata para as entidades associadas Exemplo: ao persistir um Usuario, podemos estar persistindo seu o Endereco e seus Telefones Operações que podem ser propagadas em cascata (CascadeType): ALL, PERSIST, MERGE, REMOVE e REFRESH
55 Propagação de Operações Sobre Entidades em Cascata CascadeType.PERSIST A persistência de uma entidade deverá gerar a persistência das entidades relacionadas Exemplo: persistência de um Usuario CascadeType.MERGE A atualização em uma entidade deverá gerar a atualização das entidades relacionadas O estado da entidade e de suas entidades relacionadas é sincronizado com o banco de dados
56 Propagação de Operações Sobre Entidades em Cascata CascadeType.REMOVE A remoção de uma entidade causa a remoção das entidades relacionadas CascadeType.REFRESH O estado da entidade e de suas entidades relacionadas é atualizado com informações armazenadas no banco de dados CascadeType.ALL Combinação de todas as diretivas anteriores
JPA Com Hibernate Aula 2
JPA Com Hibernate Aula 2 Paulo Ricardo Lisboa de Almeida 1 Modelo Necessário Modelo Necessário 2 Dados Transientes Quando criamos determinada propriedade em uma classe, mas essa propriedade não deve ser
Leia maisJPA Com Hibernate. Paulo Ricardo Lisboa de Almeida. Dados Transientes e Relacionamentos. 1 Universidade Positivo
JPA Com Hibernate Dados Transientes e Relacionamentos Paulo Ricardo Lisboa de Almeida 1 Instanciando a aplicação Clone o projeto da aula passada com o Git (disponível no site da disciplina) Suba o banco
Leia maisMódulo 03. Mapeando Associações/Relacionamentos. Raphaela Galhardo. raphaela@jeebrasil.com.br
Módulo 03 Mapeando Associações/Relacionamentos Raphaela Galhardo raphaela@jeebrasil.com.br Associações Um-para-um; Muitos-para-um; Um-para-muitos; Muitos-para-muitos. Associações - OneToMany Exemplo: Uma
Leia maisMapeando Relacionamentos Entre Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima
Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima Resumo Este tutorial destina-se a apresentar alguns exemplos de mapeamentos de associações/relacionamentos entre
Leia maisParte III Persistência entre Modelos de Dados
Parte III Persistência entre Modelos de Dados Clodis Boscarioli Agenda: Associações n-n com Atributos; Chave-primária composta; Herança: Tabela por classe concreta; Tabela por Hierarquia; Tabela por Sub-Classe.
Leia maisHibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior
Hibernate Mapeamento Objeto-Relacional Baseado nas notas de aula de João Dalyson e Raphaela Galhardo Fernandes Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender MOR usando Hibernate
Leia maisHerança entre Entidades JPA. Prof. Fellipe Aleixo
Herança entre Entidades JPA Prof. Fellipe Aleixo fellipe.aleixo@ifrn.edu.br ORM e Herança Para estar completo o mecanismo de mapeamento objeto-relacional precisa suportar o conceito de herança da orientação
Leia maisMapeamento Objeto-Relacional
Mapeamento Objeto-Relacional Persistência de dados com Java Persistence API - Hibernate Jefferson S Silva Mapeamento objeto-relacional Mas como? SQL + JDBC!? 1 Para quê serve MOR? O uso de uma solução
Leia maisHibernate na sua aplicação JavaWeb
Hibernate na sua aplicação JavaWeb Mentoria de Projeto 01 21/10/2017 diegoquirino@gmail.com 1 Agenda Entender a diferença entre a JPA e o Hibernate; Gerar as tabelas em um banco de dados qualquer a partir
Leia maisJPA Com Hibernate. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo
JPA Com Hibernate Paulo Ricardo Lisboa de Almeida 1 Modelo Necessário Modelo Necessário 2 JPA Mapeamento Direto entre as classes e o banco de dados Orientação a objetos para modelo relacional Feito através
Leia maisHIBERNATE Criando um projeto em Java + Hibernate do zero
HIBERNATE Criando um projeto em Java + Hibernate do zero SUMÁRIO 1 Instalação do NetBeans 2 Instalação do Java Development Kit (JDK) 3 Criar projeto no NetBeans 4 O arquivo hibernate.cfg.xml 5 Criar as
Leia maisAula 2 - Revisão de JPA (Java Persistence API)
Aula 2 - Revisão de JPA (Java Persistence API) Professor: Ricardo Luis dos Santos IFSUL 2015 Tabela para Revisão Assunto (JPA) Interesse? 1 Vantagens e Desvantagens 4 2 Principais Conceitos 7 3 Anotações
Leia maisUFG - Instituto de Informática
UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 9 Mapeamento em JPA Introdução O mapeamento objeto-relacional
Leia maisJAVA ENTERPRISE EDITION: CRIAR BEANS DE ENTIDADE A PARTIR DE TABELAS
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO JAVA ENTERPRISE EDITION: CRIAR BEANS DE ENTIDADE A PARTIR DE TABELAS FOZ DO IGUAÇU 2013 LISTA
Leia maisruirossi@ruirossi.pro.br
Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos
Leia maisJPA 2.0 e Servlet 3.0
JPA 2.0 e Servlet 3.0 Elaine Silva Instrutora Globalcode Melissa Villela Instrutora Globalcode 1 Agenda > Objetivo > JPA 2.0 > Servlet 3.0 > Conclusões 2 Agenda > Objetivo > JPA 2.0 > Servlet 3.0 > Conclusões
Leia maisUNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES
UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES TUTORIA DE USO DO HIBERNATE NA IDE ECLIPSE KEPLER DISCENTE: JOANA DARC CARVALHO DE
Leia maisJPA (Java Persistence API) Marcos Kalinowski (kalinowski@ic.uff.br)
JPA (Java Persistence API) (kalinowski@ic.uff.br) Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence
Leia maisUFG - Instituto de Informática
UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 11 Mapeamento em JPA - Continuação Objetos Embutidos
Leia maisAula 2 - Revisão de JPA (Java Persistence API)
Aula 2 - Revisão de JPA (Java Persistence API) Professor: Ricardo Luis dos Santos IFSUL 2015 Tabela para Revisão Assunto (JPA) Interesse? 1 Vantagens e Desvantagens 4 2 Principais Conceitos 7 3 Anotações
Leia maisJPA - 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 Entity Manager API Java Persistence Query Language (JPQL) Persistence Units 1 Java
Leia maisJPA - 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 Entity Manager API Java Persistence Query Language (JPQL) Persistence Units 1 Java
Leia maisHibernate. Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com
Hibernate Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com Hibernate O que é? Ferramenta para mapeamento O/R em Java Uma das mais difundidas Transparência Independência quanto ao tipo de base
Leia maisIntrodução. Coleção HashMap Classe Java. Interesse
Coleção Classe Java Introdução Interesse Modelar correspondências unívocas (1 para 1) entre objetos, do tipo chave-valor. Associações entre: um elemento de um conjunto de chaves um elemento de uma coleção
Leia maisColeções. João Paulo Q. dos Santos
Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util
Leia maisDesvendando o Hibernate
Passos Iniciais Desvendando o Hibernate 1. Repetir os passos do tutorial "CRUD com Hibernate" 2. Adicionar o driver JDBC do banco Esquematizando Fontes dos Arquivos WEB-INF\classes\hibernate.cfg.xml
Leia maisMapeamento Lógico/Relacional com JPA
Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de
Leia maisROOM: Biblioteca de Mapeamento Objeto-Relacional. Prof. Fellipe Aleixo
ROOM: Biblioteca de Mapeamento Objeto-Relacional Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Por que? Antes de mais nada: por que precisamos de persistência no disposi
Leia mais@Table(name= Nome-da-tabela ) usada quando os nomes da classe e da tabela são diferentes.
Para integrar Aplicações Orientadas por Objetos com Bases de Dados Relacionais podemos encapsular a parte relacional usando Frameworks ORM ( Object Relational Mapping). JPA (Java Persistence API Interface
Leia maisAula 4. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com)
Persistência com JDBC e JPA Aula 4 Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) A sabedoria não se transmite, é preciso que nós a descubramos fazendo uma caminhada que ninguém
Leia maisAula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU
Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Leia maisJPA Java Persistence API. Prof. Ramon Chiara
JPA Java Persistence API Prof. Ramon Chiara JDBC Java DataBase Connectivity Acesso a bancos de dados Independência de banco de dados JDBC Aplicação JDBC Driver Banco de Dados JDBC Java DataBase Connectivity
Leia maisPersistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com
Persistência de dados com JPA Hélder Antero Amaral Nunes haanunes@gmail.com O que é persistência? A persistência de dados é o fato de pegar um dado e torná-lo persistente, ou seja, salvar em algum banco
Leia maisJava Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações
Java Persistence API Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações Entity Manager Entity Manager API Java Persistence Query Language (JPQL) Persistence Units 1 Java Persistence
Leia maisProgramação Estruturada e Orientada a Objetos. Objetos e Métodos
Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;
Leia maisUNIVERSIDADE FEDERAL DE JUIZ DE FORA DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. Filipe Bastos
UNIVERSIDADE FEDERAL DE JUIZ DE FORA DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO Filipe Bastos Como unir o mundo orientado a objetos ao mundo relacional utilizando ferramentas ORM Juiz de Fora, MG 2016 UNIVERSIDADE
Leia maisIntrodução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.
Introdução Configuração Padrão POJO Mapeamento Annotation Persistência Objetos Framework Pesistência de Objetos Java Prof. Enzo Seraphim O que é? Framework persistência de Objetos é uma moderna solução
Leia maisTabelas. Banco de Dados I MySQL
FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisLinguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos
Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos
Leia maisFramework Hibernate/JPA
Framework Hibernate/JPA SSC 124/621 Análise e Projeto Orientados a Objetos Sofia Costa 1 Hibernate É um Framework do tipo caixa-branca para persistência de dados. É uma ferramenta de mapeamento objeto/relacional
Leia maisnome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){
UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------
Leia maisNotas sobre Aplicação MVC Contoso University: Parte 4. Uso de Atributos para controlar Formatação, Validação e Mapeamento na Base de Dados
Notas sobre Aplicação MVC Contoso University: Parte 4 Parte 4. Uso de Atributos para controlar Formatação, Validação e Mapeamento na Base de Dados Atributos: DisplayFormat (DataFormatString) MaxLength
Leia maisIntegrando recuperação de informação em banco de dados com Hibernate Search
Integrando recuperação de informação em banco de dados com Hibernate Search Alunos Gustavo Kendi Tsuji Leonardo Tadashi Kamaura Orientador João Eduardo Ferreira Introdução Introdução Introdução Média de
Leia maisOrientação a Objetos e Java
Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisDesenvolvimento Web com Java. Sérgio Lopes Caelum -
Desenvolvimento Web com Java Sérgio Lopes Caelum - http://www.caelum.com.br sergio.lopes@caelum.com.br Sérgio Lopes Desenvolvedor Java desde 2002 Instrutor de Java pela Caelum Trabalho com Web e Celulares
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Modificadores de Acesso: public e private Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 31 de julho de
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
Leia maisAULA 07 HIBERNATE. Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans
AULA 07 HIBERNATE Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans O JDBC é uma das maneiras mais diretas para desenvolver um aplicativo Java que interaja
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisConstrutores e Especificadores de Acesso
Construtores e Especificadores de Acesso Professora: Fátima L. S. Nunes 1 1 1 Orientação a Objetos Conceitos do Paradigma de Orientação a Objetos já vistos: Classes atributos e métodos Objetos instanciação
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Leia maisMapeamento da herança em JPA
Mapeamento da herança em JPA Impedance mismatch é o termo usado para descrever as dificuldades em mapear o estado de um objecto num registo de uma tabela de uma base de dados relacional. Na modelação orientada
Leia maisImplementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias
Leia maisBanco de dados. Conteúdo: DDL Prof. Patrícia Lucas
Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
Leia maisSQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação
SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisConexão com Banco de Dados
Conexão com Banco de Dados ORM Atualmente os novos sistemas que estão sendo desenvolvidos estão utilizando a técnica de ORM para fazer conexão e acesso a banco de dados. ORM é uma técnica de mapeamento
Leia maisMecanismo de Persistência
Hibernate Mecanismo de Persistência Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Dezembro/2005 Hibernate Mecanismo de persistência (operações em banco como inserir, atualizar, consultar
Leia maisPersistência de Objetos
Persistência de Objetos Objetos Persistentes ì Objetos Persistentes: são objetos que requerem armazenamento persistente. Exemplo: Instâncias da classe Descrição Produto devem ser armazenadas em uma base
Leia maisEnums em Java: utilização e persistência
Enums em Java: utilização e persistência Jadson José dos Santos jadsonjs@gmail.com Nas primeiras versões da linguagem Java, a única forma que existia para se utilizar constantes enumeradas era através
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores
Leia maisJPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education
JPA Passo a Passo Henrique Eduardo M. Oliveira henrique@voffice.com.br 1 Palestrante Henrique Eduardo M. Oliveira (henrique@voffice.com.br) > Trabalha: Arquiteto JEE / Instrutor Java > Formação: Ciências
Leia maisSQL Básica. Andre Noel
SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou
Leia maisDesmistificando o Hibernate Envers em 10 passos
_envers Desmistificando o Hibernate Envers em 10 passos Auditoria de dados? Registro de Log? Trilha de auditoria? Descubra como é fácil, através do Hibernate Envers, rastrear o histórico de mudanças e
Leia maisMapeamento da herança em JPA
Mapeamento da herança em JPA Impedance mismatch é o termo usado para descrever as dificuldades em mapear o estado de um objecto num registo de uma tabela de uma base de dados relacional. Na modelação orientada
Leia maisCOMPORTAMENTOS - Observações
COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para
Leia maisCollections Framework
Collections Framework 1 Arrays p Manipular array é bastante trabalhoso. p Dificuldades aparecem em diversos momentos: n não podemos redimensionar um array em Java; n é impossível buscar diretamente por
Leia maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Leia maisPersistência de Dados em Java com JPA e Toplink
Persistência de Dados em Java com JPA e Toplink Vinicius Teixeira Dallacqua Curso de Tecnologia em Sistemas para Internet Instituto Federal de Educação, Ciência e Tecnologia - IFTO AE 310 Sul, Avenida
Leia maisJPA: Persistência padronizada em Java
JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes
Leia maisProgramação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN
Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação
Leia maisStruts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600
Objetivo Com enfoque totalmente prático permite que programadores Java possam ampliar seus conhecimentos no mundo Web na criação de sistemas profissionais. Utilizar os modelos de programação com Servlets,
Leia maisHERANÇA NO BANCO DE DADOS COM ENTITY FRAMEWORK RESUMO
HERANÇA NO BANCO DE DADOS COM ENTITY FRAMEWORK Emanuel Braz da Cruz Julliano Trindade Pintas Sergio Paiva Rodas Cláudio Sally RESUMO O mercado se encontra divido quanto às plataformas de desenvolvimento
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisLaboratório de Banco de Dados. Prof. Luiz Vivacqua.
(la.vivacqua@gmail.com) Ementa Conceitos básicos Sistemas de banco de dados Relacional Visão Geral do PostGreSQL Álgebra Relacional Operadores básicos Operadores adicionais A Linguagem de Consulta Estruturada
Leia maisSingleton. Como a maioria dos programadores organizaria o código para acessar informação de configuração? Eis um exemplo:
Introdução Como a maioria dos programadores organizaria o código para acessar informação de configuração? Eis um exemplo: public class Config { public static final String DEFAULT_READ_COMMUNITY_NAME =
Leia maisProgramação OO em Java
Programação OO em Java Baseado nos materiais de Profa. Andréa S. Charão Prof. Guilherme D. Juraszek (rev. de Alexandre G. Silva, 09/2017) Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes
Leia maisEvento.java. package dominio;
Evento.java package dominio; import java.util.date; import java.util.set; import javax.persistence.entity; import javax.persistence.fetchtype; import javax.persistence.generatedvalue; import javax.persistence.generationtype;
Leia maisVamos falar de Hibernate?
Vamos falar de Hibernate? Hibernate é um framework ORM (Object-Relationship Management) muito bacana que nos permite ter muita produtividade na manipulação de objetos a serem persistidos no banco de dados.
Leia maisAula de hoje. Outras estruturas de dados. Teoria dos conjuntos. Teoria dos conjuntos. Conjuntos em Python. Conjuntos em Python
SCC 124 - Introdução à Programação para Engenharias Outras estruturas de dados Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto
Leia maisCarlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos
Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos Introdução Necessidade de diminuir a complexidade na interação código-banco de dados para o programador,além de diminuir
Leia maisPadrão J2EE Data Access Object (DAO)
Introdução CRUD DAO Exemplo Padrão J2EE Data Access Object (DAO) Prof. Enzo Seraphim Motivação para usar Componentes precisam acessar e armazenar informações em armazenamento persistente As APIs de armazenamento
Leia maisAula 05 Classes, Atributos, Métodos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes
Aula 05 Classes, Atributos, Métodos Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda Classe; Atributos; Métodos. Classes É onde conceituamos
Leia maisJava Persistence Query Language JPQL
Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Java Persistence Query Language JPQL Prof. Enzo Seraphim Definições Tornar SQL orientado a objetos Classes e propriedades ao invés de Tabelas e colunas
Leia maisAlgoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):
Algoritmos e Programação 2 Baseado no material do Prof. Júlio Machado Objetos e Classes em Java Revisão Classes: encapsulam dados (atributos) e operações sobre os dados (métodos) Objetos: instâncias de
Leia maisResolvendo objeto-relacional impedance mismatch com hibernate
Resolvendo objeto-relacional impedance mismatch com hibernate August 7, 2013 Sumário I 1 Introdução 2 3 4 Sumário II 5 Contexto Mapeamento Objeto-Relacional (ORM) é uma técnica de programação para converter
Leia maisDDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR
SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80
Leia maisA classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli
A classe ArrayList Java oferece uma classe chamada ArrayList, que permite a criação e manipulação de objetos; Um objeto ArrayList é semelhante a um vetor de objetos, mas oferece inúmeras vantagens em relação
Leia maisVetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli
Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,
Leia maisCURSO DE POO COM JAVA
07 CURSO DE POO COM JAVA Arrays PROF. MARCOS VINICIUS marcos.engsoft@gmail.com Introdução Imaginemos que queiramos trabalhar com as notas dos alunos. Supondo que cada aluno deva ter cinco notas, podemos
Leia maisAula 7 Visibilidade entre objetos e Diagramas de Classes
Departamento de Sistemas de Computação Universidade de São Paulo SSC 124 Análise e Projeto Orientados a Objetos Aula 7 Visibilidade entre objetos e Diagramas de Classes Responsável Prof. Seiji Isotani
Leia maisEsta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,
Leia mais