spring+hibernate3中的HibernteaTemplate().findByCriteria()方法的使用问题??
wjljk 2005-12-21 02:31:27 在spring1.2.6版本中,替换了hibernate2,本人原来用HibernteaTemplate().createQuery()方法来实现按条件获取记录数,但是在spring+hibernate3的HibernateTemplate()中取消了这个方法,而多了
findByCriteria(org.hibernate.criterion.DetachedCriteria criteria,int firstResult,int maxResults)
这个方法,请问这个方法里的参数org.hibernate.criterion.DetachedCriteria criteria 能接受条件查询的sql语句吗?或者还可以用什么方法实现?
如下是分别使用hibernate2和hibernte3方法时的几个方法:
//hibernate2
public List pageQuery( String strQuy, int firstResult, int maxResults ) throws HibernateException {
List result = null;
Query query = getHibernateTemplate().createQuery( getSession(), strQuy );
query.setFirstResult( firstResult );
query.setMaxResults( maxResults );
result = query.list();
return result;
}
//hibernate3 执行这个方法的时候出现了个问题,是在dc.forClass(object).createCriteria(strQuy)中,如果换成.forClass(object)就对了,但是这样的话就不具有条件查询了,请问该如何实现按条件查询并得出指定first 和max 的数据?
protected DetachedCriteria dc;
public List pageQuery( String strQuy, int firstResult, int maxResults ) throws HibernateException {
return getHibernateTemplate().findByCriteria(dc.forClass(object).createCriteria(strQuy),firstResult,maxResults);
}