11.07.2015 Views

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

35 MAPEAMENTO1011 private String cidade ;1213 private String logradouro ;1415 private int numero ;1617 private String <strong>com</strong>plemento ;1819 private int cep ;20 }Código Java 2.62: Endereco.javaDa forma <strong>com</strong>o os mapeamentos estão definidos, duas tabelas serão criadas: uma para a classePessoa e outra para a classe Endereco. Na tabela Pessoa, haverá uma coluna de relacionamento.Para recuperar os dados do endereço de uma pessoa, duas tabelas precisam ser consultadas atravésde uma operação de join. Esse tipo de operação no banco de dados é custoso.Suponha que a tabela Endereco esteja relacionada apenas <strong>com</strong> a tabela Pessoa. Nesse caso, seriainteressante se pudéssemos guardar os endereços das pessoas na própria tabela Pessoa, tornandodesnecessária a existência da tabela Endereco. No entanto, gostaríamos de manter as classes Pessoae Endereco.Isso pode ser feito da seguinte forma. Na classe Pessoa, devemos remover a anotação de cardinalidade@OneToOne. Na classe Endereco, devemos substituir a anotação @Entity por @Embeddable.Além disso, não devemos definir uma chave para a classe Endereco, pois ela não define uma entidade.1 @Entity2 class Pessoa {3 @Id4 @GeneratedValue5 private Long id;67 private String nome ;89 @Temporal ( TemporalType . DATE )10 private Calendar nascimento ;1112 private Endereco endereco ;13 }Código Java 2.63: Pessoa.java1 @Embeddable2 class Endereco {3 private String pais ;45 private String estado ;67 private String cidade ;89 private String logradouro ;1011 private int numero ;1213 private String <strong>com</strong>plemento ;1415 private int cep ;16 }www.k19.<strong>com</strong>.br 35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!