Boa tarde pessoal.
Estou trabalhando com JPA em um projeto, porem, me deparei com um problema.
Possuo um relacionamento N pra N, que em JPA se traduz em uma collection. Beleza.. ate ai tranquilo. Tanto que quando adiciono um novo objeto na collection, esse é persistido no banco.
Mas agora vem o inverso, estou querendo remover UM objeto da collection e salvar essa alteracao(remocao) no banco, mas o mesmo nao esta fazendo.
Andei lendo, aqui mesmo no forum, sobre o assunto, mas aparentemente sem solucao. Pelo o que eu entendi, o merge apenas compara o que eu tenho de objetos com o que eu tenho no banco, e caso eu tenha alguma alteracao ele faz um UPDATE, mas quando se remove um objeto, o TopLink nao consegue perceber essa diferenca e simplesmente ignora o que eu removi.
Sera que alguem tem uma saida pra isso? Lembrando, nao quero remover registros, apenas remover relacionamentos.
Abracos.
Felipe A. Lorenz
@JoinTable(name = "hlpd_RecAgregado", joinColumns = {@JoinColumn(name = "cod_RecursoSec", referencedColumnName = "cod_Recurso")}, inverseJoinColumns = {@JoinColumn(name = "cod_RecursoPrinc", referencedColumnName = "cod_Recurso")})
@ManyToMany
private Collection<Recurso> codRecursoPrincCollection;
@ManyToMany(cascade = CascadeType.ALL, mappedBy = "codRecursoPrincCollection", fetch = FetchType.EAGER)
private Collection<Recurso> codRecursoSecCollection;