[AJUDA]exclusao no relacionamento N:N

3 respostas
V

galera como eu faco para excluir em um relacionamento N:N
Relacionamento: Uma empresa tem N ramo de atividades e 1 ramo tem varias empresas

//Classe Empresa
@ManyToMany(fetch = FetchType.EAGER)
	@JoinTable(name = "empresa_ramoatividade", uniqueConstraints = @UniqueConstraint(columnNames = {
			"empresas_id", "ramodeatividades_id" }))
	private Set<RamoAtividade> ramoDeAtividades;

//Classe RamoDeAtividade
@ManyToMany(mappedBy = "ramoDeAtividades")
	@JoinTable(name = "empresa_ramoatividade")
	private List<Empresa> empresas;

pois bem…, quando tento excluir uma empresa da uma excessao(ConstraintViolationException), por que há empresa relacionada…minha duvida é: o hibernarte nao controla isso para mim. exemplo se eu excluir uma entidade empresa ele automaticamente va nas relacoes e exclua os relacionamentos??

espero ter sido claro!!!

desde ja muito obrigado pela atencão

3 Respostas

gui_sv

Deleta sim !!

Vc irá fazer da seguinte maneira !!!

public void removeRamodeAtividadeDaEmpresa(Empresa emp, Ramo ativ) {

    // coloqye isso dentro de uma transacao
    Empresa empresaQueSeraAtualizada = em.find(Empresa.class, emp.getId());  // get a chave primaria ....

    empresaQueSeraAtualizada .getRamoDeAtividades().remove(ativ);

}

eu faço e funfaaa !

espero ter ajudado.

V

certo…mas ae você indico qual entidade você queria remover…digo ao excluir a empresa…ele excluir tudo sozinho sem eu ficar precisando tirar os relacionamentos…

gui_sv

entendi…

tenta esse cara aii…

pesquise sobre essa annotation do Hibernate !

espero ter ajudado

Criado 14 de outubro de 2008
Ultima resposta 14 de out. de 2008
Respostas 3
Participantes 2