使用spring + hibernate框架中,一般使用hibernateTemplate来使用Hibernate,但hibernateTemplate
的
bulkUpdate()不能实现动态的批量删除,即使用bulkUplate时要事先确定下占位符”?“的个数,然后再使用其重载方法
bulkUpdate(queryString,
Object[]),此时,Object[]内的元素个数就要跟queryString中的占位符“?”的个数相等,使用十分麻烦,因此可以使用
HibernateCallback回调函数来进行动态批量删除,即可以不考虑要删除元素的个数。具体使用方法如下例:
public void bulkDelete(final Object[] ids) throws Exception {
final String queryString = "delete PersistentModel where id in (:ids)
";
super.execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(queryString);
query.setParameterList("ids", ids);
return query.executeUpdate();
}
});
}
注:标红处的占位符要加上(),否则会抛出语法错误异常。
使用HibernateTemplate批量删除数据
最新推荐文章于 2022-04-20 22:22:07 发布
本文介绍如何使用Spring和Hibernate框架实现动态批量删除操作。通过HibernateCallback机制,可以在不知道要删除元素数量的情况下完成批量删除任务。
1046

被折叠的 条评论
为什么被折叠?



