[RESOLVIDO] Problemas com Merge - JPA CascadeType.All

3 respostas
F

Estou com um problema para atualizar alguns registros,
por exemplo:

Estrutura das tabelas: Usuario --> Perfil_Usuario <-- Perfil

Crio um Usuario, e atribuo o perfil de Gerente e Usuario a ele… e quero tirar o perfil de gerente, qual a melhor forma de fazer isso?
excluir todos os registros da tabela Perfil_Usuario, e adicionar somente o perfil "usuario"?

estou utilizando o TopLink

@Entity
@Table(name="usuario")
public class Usuario implements Serializable {
//...
	@OneToMany(mappedBy="usuario", cascade =CascadeType.ALL)
	private List&lt;PerfilUsuario&gt; perfilUsuarios;
//...
}
@Entity
@Table(name="perfil_usuario")
public class PerfilUsuario implements Serializable {
//...
    @ManyToOne
	@JoinColumn(name="USUARIO_ID")
	private Usuario usuario;
//...
}

Adicionei o orphanRemoval=true para resolver:

@OneToMany(mappedBy="usuario", cascade =CascadeType.ALL, orphanRemoval=true)
	private List&lt;PerfilUsuario&gt; perfilUsuarios;

3 Respostas

dev.rafael

Se vc estiver usando JPA2 vc pode usar o atributo orphanRemoval=true da anotação [b]OneToMany[/n] que, ao
ser removido do relacionamento (usuario.getPerfis().remove(admPerfil)). Senão vc pode usar (JPA 2) use uma query

delete from UsuarioPerfil up where up.nome = 'adm'
F

putz vlwss cara… funcionou com o “orphanRemoval=true”

migrei td pra JPA 2…

T

Para mim tb resolveu adicionando esse opção ao relacionamento.

Criado 7 de setembro de 2010
Ultima resposta 8 de set. de 2012
Respostas 3
Participantes 3