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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MAPEAMENTO 32Figura 2.13: Tabelas Estado e Governador no banco de dadosNote que foram criadas duas colunas de relacionamentos. A primeira na tabela Estado <strong>com</strong> onome governador_id e a segunda na tabela Governador <strong>com</strong> o nome estado_id. Nesse caso, oprovedor JPA está considerando dois relacionamentos unidirecionais distintos entre essas entidades.No entanto, de acordo <strong>com</strong> o modelo relacional, a relação entre estados e governadores deveriaser expressa <strong>com</strong> apenas uma coluna de relacionamento. Ou seja, o relacionamento entre governadorese estados deveria ser bidirecional. Assim, devemos indicar em uma das classes que esserelacionamento bidirecional é a junção de dois relacionamentos unidirecionais. Para isso, devemosadicionar o atributo mappedBy na anotação @OneToOne em uma das classes. O valor do mappedBydeve ser o nome do atributo que expressa o mesmo relacionamento na outra entidade.1 @Entity2 class Governador {3 @Id4 @GeneratedValue5 private Long id;67 @OneToOne ( mappedBy =" governador ")8 private Estado estado ;910 // GETTERS E SETTERS11 }Código Java 2.56: Governador.javaFigura 2.14: Tabelas Estado e Governador no banco de dadosExercícios de Fixação19 Considere um sistema de cobrança de ligações telefônicas. Nesse sistema, temos uma entidadechamada Ligação e uma entidade chamada Fatura. Cada ligação está associada a uma única fatura,enquanto que uma fatura está associada a múltiplas ligações. Implemente classes para modelar essasduas entidades no pacote br.<strong>com</strong>.k19.modelo do projeto K19-Mapeamento.1 @Entity2 public class Ligacao {3 @Id @GeneratedValue4 private Long id;56 @ManyToOne7 private Fatura fatura ;32 www.k19.<strong>com</strong>.br

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

Saved successfully!

Ooh no, something went wrong!