Problema ao alterar um coleção(usando o merge ou o update)

0 respostas
T

Bom dia!

Pessoal, estou com o seguinte problema:

Eu tenho a seguinte classe:

public class Manutencao implements Serializable{
	
	private static final long serialVersionUID = 6130813882879283989L;
	
	private Long id;
	private Calendar data;
	private Set<Servidor> servidor;


@ManyToMany(fetch=FetchType.LAZY)
	@JoinTable(name="manutencao_servidor",
				joinColumns={@JoinColumn(name="fk_manutencao")},
				inverseJoinColumns={@JoinColumn(name="fk_servidor")})
	public Set<Servidor> getServidor() {
		return servidor;
	}
	public void setServidor(Set<Servidor> servidor) {
		this.servidor = servidor;
	}

E na minha lógica:

public String armazena(Manutencao manutencao) {
		// Fundindo uma instância transient para uma instância persistente.
		Manutencao manu = this.daoFactory.getManutencaoDao().merge(manutencao);

Set<Servidor> servidoresAtual = (Set<Servidor>) session.getAttribute("servidores");
		// Atualiza a coleção de servidores
		if (servidoresAtual!=null && !servidoresAtual.isEmpty()){
			manu.setServidor(servidoresAtual);
		}
                               // Salvando a a classe...... **** Problema ****
                               this.daoFactory.getManutencaoDao().merge(manu);

O problema é o seguinte, até aqui funciona direitinho para adicionar, mas quando eu vou alterar ele tá fazendo o seguinte:

delete from manutencao_servidor where fk_manutencao=?
insert into datac_manutencao_servidor (fk_manutencao, fk_servidor) values (?, ?)

Já tentei usando o merge, update e dá na mesma!!! O que eu tô fazendo de errado!!!

Desde já, agradeço a atenção e ajuda de todos.

Um abraço,

Tubarão

Criado 31 de outubro de 2007
Respostas 0
Participantes 1