使用HibernateTemplate可以很方便的使用Hql语句来进行查询操作,如:
String hql = "from User where name = ?";
List<User> list = (List<User>) this.find(hql, "cytus");
就可以方便的查询name为cytus的记录了。(这里采用占位符的方式输入参数)
但是在执行删除操作的时候,就没有这么方便了,而是需要先查询出来,然后再执行删除操作。
String hql = "from User where id = ?";
User user= (User) this.find(hql, id);
this.delete(user);
所以可以不使用HibernateTemplate提供的delete方法,而是通过HibernateTemplate来获取sessionFactory,然后获取session,使用session的createSQLQuery方法来直接执行sql语句。
SessionFactory sessionFactory = this.getSessionFactory();
Session session = sessionFactory.getCurrentSession();
String sql = "delete * from user";
Query query = session.createSQLQuery(sql);