Bom dia!
Estou com um problema, tenho uma série de updates massivos até ai sem problemas eles são executados.
Porém, após um update eu tenho que efetuar um select com criteria e este select com o criteria não me retorna os dados atualizados, segue exemplo:
// atualizo as informações para APPROVED
session.createQuery("update EventTariff "
+ " set "
+ " approvalRemarks = :approvalRemarks, "
+ " approvedDate = :approvedDate, "
+ " approvedBy.id = :approvedBy, "
+ " eventStatus = :eventStatus, "
+ " updateUser = :updateUser, "
+ " updateDate = :updateDate "
+ " where id in (:ids) and "
+ " eventStatus in (:pending) ")
.setParameter("updateUser", user.getId())
.setParameter("updateDate", now())
.setParameter("approvedDate", now())
.setParameter("approvalRemarks", approvalRemarks)
.setParameter("approvedBy", user.getId())
.setParameter("eventStatus", status)
.setParameterList("ids", objs)
.setParameterList("pending", asList(APPROVED, PARTIALLY_APPROVED, PENDING_APPROVAL, REFUSED))
.executeUpdate();
Criteria criteria = session.createCriteria(EventTariff.class, "t");
criteria.createAlias("event", "e")
.add(eq("e.vessel", obj.getVessel()))
.add(eq("e.voyage", obj.getVoyage()))
.add(eq("e.direction", obj.getDirection()))
.add(ilike("e.portOfLoad.name", obj.getPortOfLoad(), ANYWHERE))
.add(eq("e.terminal.id", obj.getTerminalId()))
.add(eq("e.costType.id", costType.getId()))
.add(eq("e.movementType", obj.getMovementType()))
.add(eq("e.brand", brand))
.add(eq("e.service", obj.getService()))
.add(in("t.eventStatus", new EventStatus[]{APPROVED, PARTIALLY_APPROVED, PENDING_APPROVAL}));
Será que tenho usar o select no objeto?