Oi pessoal do guj, estou com uma dificuldade com jpa e venho pedir ajuda.
Tenho uma classe chamada entidade, ela tem um relacionamento com ela mesma (atributo empresa).
Não consigo desvincular uma entidade de uma empresa, quando busco a entidade no banco ela sempre vem com a empresa mesmo eu tendo setado empresa pra null e salvado. o problema é só com esse tipo de relacionamento.
estou fazendo da seguinte forma:
entidade.setEmpresa(null);
entidade.save....
classe entidade (resumida):
@Table(name = "entidades")
public class Entidade implements Serializable, CycleRecoverable {
.
.
.
private Entidade empresa;
@ManyToOne
@JoinColumn(name = "entidade_id")
public Entidade getEmpresa() {
return this.empresa;
}
}
oi pessoal, tentei con fetchtype eager e nullable true e não mudou nada, seto a empresa pra null e nada acontece.
não sei que outra anotação ou configuração poderia ter a ver com isso, por favor me dêem uma dica do que pode ser
ou pelo menos uma direção para solucionar isso…
vi que no arquivo de configuração pode-se colocar a seguinte propriedade:
isso resolveu o problema de setar null, porém outros relacionamentos não estão mais sendo mais trazidos do banco.
arrumou uma coisa e estragou outra =/
alguma idéia?[/quote]
mas o certo é você dar um remove na lista de empresas ? por que para remover um objeto tem que remover da lista deopis dar um persist/update (hibernate)
assim ele não seta null, mas sim remove de verdade
não quero remover a empresa do banco, só quero que a entidade não seja mais vinculada a nenhuma empresa…[/quote]
exatamente, da no mesmo se o mapeamento fosse em qualquer uma, você não pode setar um valor nulo, você tem que criar um metodo para deletar a empresa, ai você coloca em.delete(getEmpresa);
não quero remover a empresa do banco, só quero que a entidade não seja mais vinculada a nenhuma empresa…[/quote]
exatamente, da no mesmo se o mapeamento fosse em qualquer uma, você não pode setar um valor nulo, você tem que criar um metodo para deletar a empresa, ai você coloca em.delete(getEmpresa);
então em vez do delete você tentou entidade.setEmpresa(new Empresa()) e depois em.update(entidade) (ou update se for hibernate) ?
assim ele salva vazio e não nulo (nulo e vazio tem diferenças)
Se não der certo, chegar em casa eu refaço seu código lá e vejo, to no trampo