解决HibernateTemplate无法根据hql批量删除的问题

来源:互联网 发布:金山毒霸手机数据恢复 编辑:程序博客网 时间:2024/06/11 17:38

由于某些原因我要在写入一个表数据前清空表内的所有内容。
可是发现HibernateTemplate的delete方法并不支持hql语句,百度搜索更是没有发现合适的解决方法。然后查看HibernateTemplate方法发现了一个execute方法,要实例一个HibernateCallback接口。
由于spring封装hibernate后的HibernateTemplate灵活性不足,所以我们可以通过HibernateCallback接口来使用hibernate的方式来执行hql语句.
最后成功解决。

public void clearAll() {        this.getHibernateTemplate().execute(new HibernateCallback<Article>() {            public Article doInHibernate(Session session) throws HibernateException,                    SQLException {                Query query = session.createQuery("delete from Article");                query.executeUpdate();                return null;            }        });    }
原创粉丝点击