• Nenhum resultado encontrado

03. Trabalhando com relacionamentos

N/A
N/A
Protected

Academic year: 2022

Share "03. Trabalhando com relacionamentos"

Copied!
22
0
0

Texto

(1)

Java Enterprise Edition - JEE

03. Trabalhando com relacionamentos

(2)

Melhorando o modelo

Operações realizadas em contas:

Pagamento de contas;

Recebimento de salários;

Recebimento de salários;

Transferência de valores;

Essas operações são Movimentações da conta;

Cada Movimentação pode ser de

(3)

Diagrama de classes

(4)

Pensando em mapeamento

A implementação da JPA tenta

converter o tipo JAVA para o tipo adequado no banco de dados;

adequado no banco de dados;

Exemplo: Um atributo String é mapeado para um campo varchar;

Com isso, não temos um mapeamento

de um Enum diretamente para um tipo

do banco de dados;

(5)

Trabalhando com ENUMs

@Enumerated – mapeamento de Enum;

Duas abordagens de mapeamento:

EnumType.ORDINAL – int, iniciando em zero. É

EnumType.ORDINAL – int, iniciando em zero. É a abordagem padrão;

EnumType.STRING – varchar, nome da

constante;

(6)

Cardinalidade de mapeamento

A classe Movimentacao possui um atributo Conta;

Como será o mapeamento da JPA:

Como será o mapeamento da JPA:

Varchar, int, decimal?

Precisamos mapear um relacionamento, que no BD, é baseado em chave

estrangeira;

(7)

Cardinalidade de mapeamento

Para mapear relacionamentos, precisamos informar apenas a cardinalidade;

No nosso exemplo, podemos ter muitas

No nosso exemplo, podemos ter muitas Movimentações para uma Conta

Para representar esse tipo de

relacionamento, usamos @ManyToOne;

(8)

Entendendo os campos

No mapeamento anterior, a JPA espera que exista uma tabela Movimentacao

com o campo conta_id, que é uma com o campo conta_id, que é uma chave estrangeira que aponta para o campo id da tabela Conta;

Mas o que acontece quando campo chave estrangeira tem um nome

diferente do padrão?

(9)

Mapeando relacionamentos

Podemos incluir a anotação @JoinColumn, a fim de customizar o nome do campo que representa a chave estrangeira;

representa a chave estrangeira;

A propriendade name indica o nome do

campo na tabela Movimentacao;

(10)

Exercício 01 – Tipo Movimentacao

Implemente o Enum TipoMovimentacao,

conforme descrito a seguir:

(11)

Exercício 02 – Movimentacao

(12)

Exerc. 03 – MovimentacaoDAO

(13)

Teste de persistência

Vamos criar uma classe de teste

Criar um EntityManager;

Criar uma Movimentação;

Criar uma Movimentação;

Criar um DAO; e

Persistir o objeto criado;

(14)

Movimentação sem conta

(15)

Inclusão da conta

Como resultado ao problema

apresentado no slide anterior, podemos criar e povoar um objeto Conta;

criar e povoar um objeto Conta;

Em seguida, atribuímos a conta criada à movimentação;

Qual o problema com o código do slide

(16)

Inclusão da conta

(17)

TransientObjectException

Ao persistirmos uma entidade, todas as entidades relacionadas devem estar

persistidas, também. Do contrário...

(18)

Resolvendo o TransientObject

Antes de persistir o objeto Movimentacao, podemos persistir o objeto Conta;

Com isso, podemos criar uma nova Conta e

Com isso, podemos criar uma nova Conta e atribuí-la a uma nova Movimentação;

Quando não queremos criar uma nova conta, mas usar uma já cadastrada,

precisamos informar um id válido para a

conta de uma determinada movimentação;

(19)

Exercício 04-TestePersistencia

(20)

Exercício 05 TesteConsultar

(21)

Referências

www.caelum.com.br

http://hibernate.org/docs

Hall, Marty, “Core Servlets and Java Server

Hall, Marty, “Core Servlets and Java Server Pages”, Janeiro 2002, Sun Microsystems

Press;

http://java.sun.com/j2ee/1.6/docs/tutorial/d

(22)

Java Enterprise Edition - JEE

03. Trabalhando com relacionamentos

Esp. Márcio Palheta

gtalk: [email protected]

Referências

Documentos relacionados

E) CRIE NO SEU CADERNO UM TÍTULO PARA ESSA HISTÓRIA EM QUADRINHOS.. 3- QUE TAL JUNTAR AS SÍLABAS ABAIXO PARA FORMAR O NOME DE CINCO SUGESTÕES DE PRESENTE PARA O DIA

Evidentemente, a língua portuguesa representa o Brasil. A valorização da mesma significa, por transferência de significado, uma valorização da nação brasileira. A comparação do

É o nome usado para descrever empresas que prestam serviços financeiros, tendo na tecnologia seu grande diferencial — muitas delas, inclusive, não têm agências para atender

O presente estudo realizou uma análise descritiva, observacional e retrospectiva de pacientes atendidos no ambulatório de Hematologia do Hospital de Base de Brasília, no

thread corrente em estado de espera até que outra thread chame os métodos notify ou notifyAll liberando o

Entre os bairros avaliados o Santa Rita apresentou as condições mais precárias de saneamento básico no ano de 2007 em função da ausência de fornecimento de

O problema, tal como se coloca, é que a formação de um universo de relações técnicas de trabalho envolvendo situações muito mais diferenciadas e complexas exige sim muito mais

Antes de mostrarmos a rela¸ c˜ ao entre regularidade de uma curva e existˆ encia de reparametriza¸c˜ oes por comprimento de arco dessa curva, notemos uma propriedade sim- ples