public List<Message> getMessageList(int showCount,int currentPage){
String hql="select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?";
List<Message> list =this.getHibernateTemplate().find(hql,new Object[]{showCount*currentPage,(currentPage-1)*showCount});
return list;
}关于这个分页HQL语句查询问题,总是报错:unexpected token: ( near line 1, column 42 [select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?]
unexpected token: ( near line 1, column 42 [select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ( near line 1, column 42 [select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?] 求朋友们帮忙啊,坐等!!!谢啦hql
String hql="select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?";
List<Message> list =this.getHibernateTemplate().find(hql,new Object[]{showCount*currentPage,(currentPage-1)*showCount});
return list;
}关于这个分页HQL语句查询问题,总是报错:unexpected token: ( near line 1, column 42 [select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?]
unexpected token: ( near line 1, column 42 [select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ( near line 1, column 42 [select title,employeeId,publishTime from (select a.title,a.employeeId,a.publishTime, rownum rn from (select title,employeeId,publishTime from Message)a where rownum<=?)b where rn>?] 求朋友们帮忙啊,坐等!!!谢啦hql
你可以用他的分页。然后show_sql
你看你少了空格哎!
(select title,employeeId,publishTime from Message) a where rownum<=?) b where rn>?
看看2个的不同吧!
final int pageNow, final String hql) {
return hibernateTemplate.executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult((pageNow - 1) * pageSize);
query.setMaxResults(pageSize);
List list = query.list();
return list;
}
});
}用setFirstResult来设定开始的位置,用setMaxResults这设定一次查出的条数,这样传入的hql就是一个普通的简单的查询语句
"(select a.title,a.employeeId,a.publishTime, rownum rn from " +
"(select title,employeeId,publishTime from Message) a where rownum<=?)b where rn(这个rn是查的哪个表中的值)>?";hql语句写规范,还有 rn 是 rownum 的缩写还是两个不同的字段
"(select a.title,a.employeeId,a.publishTime, <span style="color: rgb(255, 0, 0);">rownum rn</span> from " +
"(select title,employeeId,publishTime from Message) a where rownum<=?)b where <span style="color: rgb(255, 0, 0);">rn(这个rn是查的哪个表中的值)</span>>?";
"(select a.title,a.employeeId,a.publishTime, rownum rn from " +
"(select title,employeeId,publishTime from Message) a where rownum<=?)b where rn>?";CSDN的样式真蛋疼
不懂