我想保留一个列表并在数据库中更新其更改
基本上,
为了保存 - 我迭代所有对象并保存每个对象
为了删除 - 每次删除一个objhect时,我都会保留该对象的副本,以便稍后在另一个列表中使用。
当我保存时,我也迭代它并删除那些元素。
private boolean saveAll() {
Session session = null;
boolean successful = false;
try {
session = sessionFactory.openSession();
session.beginTransaction();
for (myObject myO : myObjectsList) {
session.save(myO);
}
for (myObject removedObject : toBeRemovedList) {
session.delete(removedObject);
}
session.getTransaction().commit();
successful = true;
} catch (HibernateException e) {
successful = false;
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
return successful;
}
现在我打算这样称呼它:
if (saveAll()){
toBeRemovedList.clear()
}
有何评论?
感谢。
答案 0 :(得分:1)
你可以用保存做很多事情。但是,使用以下HQL
,
Query q = createQuery("delete from YourObjectName where id in (:idList) ");
q.setParameterList("idList", idList);
q.executeUpdate();
您可以找到java docs here。
此处只会执行一个查询来删除列表中的所有项目。