jpa - Duvida basica sobre Cascade no Hibernate/JPA
Perguntas � jpa � Duvida basica sobre Cascade no Hibernate/JPA
Duvida basica sobre Cascade no Hibernate/JPA
Estou com uma duvida que acredito ser bem básica, sobre o uso do Cascade nos relacionamentos do Hibernate/JPA.
O que entendi até agora é:
Tenho um objeto Pessoa e tenho um objeto Endereço. Pessoa possui um objeto Endereço, e o relacionamento é unidirecional de Pessoa para endereço. O mapeamento é OneToOne. Se eu criar um objeto Endereço que não existe no banco de dados, e também um Pessoa que não existe, e persistir o objeto Pessoa, automaticamente o objeto Endereço será persistido no banco de dados (caso esteja mapeado com Cascade ALL ou PERSIST).
Mas e quando eu quero somente alterar a referência à um endereço? Tenho 2 Endereços já cadastrados no banco, e 1 pessoa. (Eu sei que o relacionamento seria OneToOne, mas vamos imaginar) Num determinado momento, quero alterar o endereço dessa pessoa para o outro cadastrado no banco.
Um cascade MERGE iria fazer o que nesse caso? Iria alterar os dados do endereço atual? Ou iria de fato trocar a referência de endereços?
A mesma coisa com o Cascade DELETE: Se eu tiver um relacionamento ManyToMany e usar tal Cascade, os elementos que serão excluidos do banco serão os da tabela relacional ou da tabela referenciada?