方式一:直接使用HibernateTemplate的find()方法,find方法支持执行hql语句
List<T> list = this.getHibernateTemplate().find(finalHql, params);
方式二:获取SessionFactory,再获取Session
SessionFactory sf = this.getHibernateTemplate().getSessionFactory(); Session s = sf.getCurrentSession(); Query query = s.createQuery(finalHql); query.setParameter(0, params[0]); query.setParameter(1, params[1]); List<T> list = query.list();
方式三:使用hibernateTemplate调用回调函数
List<T> list = this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(finalHql);
if(params!=null && params.length>0){
for(int i=0;i<params.length;i++){
query.setParameter(i, params[i]);
}
}
return query.list();
}
});
原文:https://www.cnblogs.com/zhonggongjavastudy/p/14984440.html