Eu consegui resolver mas não sei se foi gambiarra...Só sei que agora funciona .
Só para não deixar sem explicação vou dizer como eu fiz.
Antes, meu bean tinha:
public String activateIndividualPaper() {
IndividualRN individualRN = new IndividualRN();
this.selecIndividualPaper = individualRN
.loadIndividualPaper(this.selecIndividualPaper.getId());
individualRN.restore(this.selecIndividualPaper.getPaper().getId());
this.selecIndividualPaper.setAtivo(true);
individualRN.save(this.selecIndividualPaper);
this.selecIndividualPaper = new IndividualPaper();
return "listuniqueIndPaperx";
}
E meu DAOHibernate tinha:
public void save(IndividualPaper individualPaper) {
this.session.save(individualPaper);
}
public void restore(Integer id) {
String hql = "UPDATE IndividualPaper SET ativo=:newativo WHERE ativo=:oldativo and paper.id=:id";
Query updatedEntities = this.session.createQuery(hql);
updatedEntities.setBoolean("newativo",false);
updatedEntities.setBoolean( "oldativo",true);
updatedEntities.setInteger("id", id);
updatedEntities.executeUpdate();
}
Agora eu fiz assim:
Meu bean:
public String activateIndividualPaper() {
IndividualRN individualRN = new IndividualRN();
this.selecIndividualPaper = individualRN
.loadIndividualPaper(this.selecIndividualPaper.getId());
individualRN.restore(this.selecIndividualPaper.getPaper().getId());
individualRN.activateIndPaper(this.selecIndividualPaper.getId());
this.selecIndividualPaper = new IndividualPaper();
return "listuniqueIndPaperx";
}
Como se vê, eu não chamo o método
save mais. Faço a atualização através do método
activateIndPaper.
Agora no DAOHibernate tenho:
public void activateIndPaper(Integer id) {
String hql = "UPDATE IndividualPaper i SET ativo=:newativo WHERE i.id=:id";
Query updatedEntities = this.session.createQuery(hql);
updatedEntities.setBoolean("newativo",true);
updatedEntities.setInteger("id", id);
updatedEntities.executeUpdate();
}
Assim, quando eu peço para listar os dados na datatable, eles aparecem já atualizados.
Se depois alguém souber qual o jeito correto de resolver ou apontar o erro que eu estava cometendo, ficaria grata. =)