[RESOLVIDO] So consigo inserir nao deletar via update (vRaptor + Hibernate + Spring)

Tenho um método a qual crio uma grupo de usuários porem só consigo inserir novos usuários a lista no consigo remove-los.

Grupo:[code]

@OneToMany(cascade={CascadeType.MERGE,CascadeType.PERSIST}, targetEntity=Usuario.class, fetch=FetchType.EAGER,  mappedBy="grupoComoEntrevistador")
private Collection<Usuario> entrevistadores;[/code]

GrupoDAO: public Grupo alterar(Grupo grupo) throws CadastroException { Collection<Usuario> entrevistadores = new ArrayList<Usuario>(); for (Usuario entrevistador : grupo.getEntrevistadores()) { Usuario entrevistadorPersistente = usuarioDao.get(entrevistador.getId()); entrevistadores.add(entrevistadorPersistente); entrevistadorPersistente.setGrupoComoEntrevistador(grupo); usuarioDao.Update(entrevistadorPersistente); } grupo.setEntrevistadores(entrevistadores); Usuario supervisor = grupo.getSupervisor(); grupo.setSupervisor(usuarioDao.get(supervisor.getId())); Update(grupo); return grupo; }

se o relacionamento é mappedBy, não adianta mexer nele, não vai mexer no no banco…

vc precisa pegar o usuario e remover o grupo dele.

So que não posso excluir esse usuário.

não precisa excluir o usuário… é só fazer um usuario.setGrupo(null), ou usuario.setGrupo(outroGrupo)

Obrigado mais uma vez lucas.
Resolvi da seguinte maneira coloquei uma anotação @JoinCollumn e executo um merge antes do update

@OneToMany(cascade={CascadeType.MERGE,CascadeType.PERSIST}, targetEntity=Usuario.class, fetch=FetchType.EAGER) @JoinColumn(name="grupoComoEntrevistador_id") private Collection<Usuario> entrevistadores;

public Grupo alterar(Grupo grupo) throws CadastroException { Collection<Usuario> entrevistadores = new ArrayList<Usuario>(); for (Usuario entrevistador : grupo.getEntrevistadores()) { Usuario entrevistadorPersistente = usuarioDao.get(entrevistador.getId()); entrevistadores.add(entrevistadorPersistente); entrevistadorPersistente.setGrupoComoEntrevistador(grupo); usuarioDao.merge(entrevistadorPersistente); } grupo.setEntrevistadores(entrevistadores); Usuario supervisor = grupo.getSupervisor(); grupo.setSupervisor(usuarioDao.get(supervisor.getId())); Update(grupo); return grupo; }

Obrigado e abraços !