HibernateTemplate根据hql批量删除

    public void clearAll(final String hql) {
        this.getHibernateTemplate().execute(new HibernateCallback() {
            public Object doInHibernate(Session session) throws HibernateException, SQLException {
                Query query = session.createQuery(hql);
                query.executeUpdate();
                return null;
            }
        });
    }

HibernateTemplate的delete方法并不支持hql语句,查看HibernateTemplate方法发现了一个execute方法,要实例一个HibernateCallback接口。 
由于spring封装hibernate后的HibernateTemplate灵活性不足,所以我们可以通过HibernateCallback接口来使用hibernate的方式来执行hql语句. 

原文地址:https://www.cnblogs.com/chuningning/p/9121968.html