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.

63 ENTITY MANAGERCódigo Java 3.53: Comentario.java1 Topico topico = manager . find ( Topico .class , 1L);23 manager . getTransaction (). begin ();45 // os <strong>com</strong>entários desse tópico serão removidos em cascata6 manager . remove ( topico );78 manager . getTransaction (). <strong>com</strong>mit ();Código Java 3.54: Removendo um tópico e seus <strong>com</strong>entáriosContudo, se os vínculos entre um tópico e seus <strong>com</strong>entários forem desfeitos, os <strong>com</strong>entários nãoserão removidos automaticamente. No exemplo abaixo, os <strong>com</strong>entários serão mantidos no banco dedados.1 Topico topico = manager . find ( Topico .class , 1L);23 manager . getTransaction (). begin ();45 topico . getComentarios (). clear ();67 manager . getTransaction (). <strong>com</strong>mit ();Código Java 3.55: Desvinculando os <strong>com</strong>entários de um tópicoPodemos determinar que todo <strong>com</strong>entário não vinculado a um tópico deve ser automaticamenteremovido. Essa configuração pode ser realizada através do atributo orphanRemoval das anotações@OneToOne e @OneToMany. Veja o exemplo a seguir.1 @Entity2 public class Topico {34 @Id @GeneratedValue5 private Long id;67 @OneToMany ( orphanRemoval = true )8 private List < Comentario > <strong>com</strong>entarios ;910 private String titulo ;1112 // GETTERS E SETTERS13 }Código Java 3.56: Topico.javaPare para pensar...Não é necessário definir cascade=CascadeType.REMOVE em um relacionamento<strong>com</strong> orphanRemoval=true.Exercícios de Fixação29 No pacote br.<strong>com</strong>.k19.modelo do projeto K19-EntityManager, crie as seguintes entidades:www.k19.<strong>com</strong>.br 63

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

Saved successfully!

Ooh no, something went wrong!