public SearchResult findPageByCriteriaWithProjection (final FSDetachedCriteria detachedCriteria, final int pageSize,
final int startIndex) {
return (SearchResult) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Criteria criteria = detachedCriteria.getDetachedCriteria().getExecutableCriteria(session);
if(detachedCriteria.getOrder() != null) {
criteria.addOrder(detachedCriteria.getOrder());
}
// Get total count
int totalCount = 0;
ScrollableResults sr = criteria.scroll();
if (sr.last()) {
totalCount = sr.getRowNumber() + 1;
}
List items = criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();
SearchResult ps = new SearchResult(items, totalCount);
criteria.setProjection(null);
return ps;
}
}, true); startIndex 需要你自己计算下
}
final int startIndex) {
return (SearchResult) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Criteria criteria = detachedCriteria.getDetachedCriteria().getExecutableCriteria(session);
if(detachedCriteria.getOrder() != null) {
criteria.addOrder(detachedCriteria.getOrder());
}
// Get total count
int totalCount = 0;
ScrollableResults sr = criteria.scroll();
if (sr.last()) {
totalCount = sr.getRowNumber() + 1;
}
List items = criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();
SearchResult ps = new SearchResult(items, totalCount);
criteria.setProjection(null);
return ps;
}
}, true); startIndex 需要你自己计算下
}
解决方案 »
- 并发执行
- 关于反射 帮帮忙 谢谢!
- 点注册以后,出不来页面的问题,请高手们帮忙看看
- 如何通过 JDOM 获取下面 XML文档的 RECORD(带命名空间的)节点
- 求教!使用Hibernate中,表关系较复杂,如何提高性能?
- 紧急求救,过滤器配置问题报错:The requested resource (/student/) is not available
- 关于struts标签的问题!!!!
- StrutsTestCase 空指针
- 请问resin3.0.9的默认文件怎么改
- 使用struts的标签时怎么才能把从数据库中查询出的内容显示到输入框中(当作默认值)?
- hibernate多对多,多对一映射时用set,bag,list,array时有什么区别?
- 高分\在线等:sql sverver2005里的image字段,select出来后怎样insert到oracle里?
public class Test extends HibernateDaoSupport{ public List getLimitListByOptimizeHQL(final String hql, final Object[] queryParams, final int start, final int limit) {
final int showCount = limit;
final String str_hql="select * from tbepisteme";
final Object[] obg_queryParams=null;
final int int_start=0;
final int int_limit=10;
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException, SQLException {
Query query = s.createSQLQuery(str_hql);
// if(queryParams!=null)
// {
// for (int i = 0; i < queryParams.length; i++) {
// query.setParameter(i, queryParams[i]);
// }
// }
query.setFirstResult(int_start);
query.setMaxResults(int_limit);
System.out.println("aaaaaaaaaaa");
List list = query.list();
System.out.println("lsit"+list.size());
return list;
}
});
}
}
一运行就报这样的错误:
WARN - Unhandled Exception thrown: class org.springframework.orm.hibernate3.HibernateQueryException
2008-7-25 9:57:21 org.apache.catalina.core.ApplicationContext log
信息: org.springframework.orm.hibernate3.HibernateQueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [select * from tbepisteme]; nested exception is org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [select * from tbepisteme]请大家给小弟指出错误所在....不剩感激!!!!
// {
// for (int i = 0; i < queryParams.length; i++) {
// query.setParameter(i, queryParams[i]);
// }
// }
注释去掉。
final String str_hql="select * from tbepisteme";
好像这个有问题,格式是不是要想下面这样:
"select * from tbepisteme where id=? ";
如果有两个参数可以是id=?and name=?
当然不一定是id和name,这里这是举例而已。
试一下。
query.setFirstResult(begin); //起始记录,就是从数据库第几条记录开始
query.setMaxResults(count); //从起始记录开始读去多少条记录