Pessoal, tenho uma classe funcionario que possui uma lista de pontos
Funcionario:
@OneToMany(mappedBy="funcionario", fetch=FetchType.EAGER)
@Cascade(CascadeType.ALL)
private List<Ponto> pontos = new ArrayList<Ponto>();
Ponto:
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="id_funcionario", nullable=false)
@Fetch(FetchMode.SELECT)
@Cascade(CascadeType.ALL)
private Funcionario funcionario;
Quero remover apenas um ponto do funcionario… este eh o que seleciono no meu datatable em jsf
aqui esta o codigo:
public String removerPonto(){
Ponto ponto = (Ponto) dataObjPonto.getRowData();
Funcionario funcionario = ponto.getFuncionario();
System.out.println(ponto.getId());
System.out.println(ponto.getFuncionario().getNome());
PontoDAO pontoDAO = new PontoDAO();
pontoDAO.remove(ponto);
funcionario.getPontos().remove(ponto);
if(funcionario.getQtPontos() > 4)
funcionario.setDivida((funcionario.getPontos().size() - 4)*2.50d);
else
funcionario.setDivida(0d);
FuncionarioDAO funcionarioDAO = new FuncionarioDAO();
funcionarioDAO.save(funcionario);
HibernateUtil.closeSession();
return null;
}
O Problema esta o delete do PONTODAO( pontoDAO.remove(ponto); )
ele esta deletando todos os pontos do usuairio, causando inconsistencia.
eu passo o ponto certo, com a id certa
porem ele esta fazendo varios deletes ao invez de um.
alguem sabe como resolvo isso ?
aqui esta a query gerada:
Hibernate:
delete
from
tb_pontos_ponto
where
id=?
Hibernate:
delete
from
tb_pontos_ponto
where
id=?
Hibernate:
delete
from
tb_pontos_ponto
where
id=?
Hibernate:
delete
from
tb_pontos_quadropontos
where
id=?
Hibernate:
delete
from
tb_pontos_funcionario
where
id=?