sessionFactory.getCurrentSession().createQuery(
"delete from Attendance attend where attend.id in(Select att.id from Attendance att where att.dat= :dat and att.cls_id= :cls_id)"
).setDate("dat", dat).setShort("cls_id",cls_id); // delete all records with matching date and cls_id
sessionFactory.getCurrentSession().flush();
sessionFactory.getCurrentSession().clear();
// immediate save after delete in same transaction
for(Attendance a : absent){
sessionFactory.getCurrentSession().save(a);
}
我正在尝试删除具有特定条件的现有行,因为我要保存的对象可能已经存在于表中。但是,删除操作不起作用,并且正在插入重复的值。请告诉我代码的哪一部分是错的。
1条答案
按热度按时间baubqpgj1#
您没有执行查询,只是传递参数。你需要打电话
executeUpdate()
查询的方法: