第一次写java,总结了一点经验
我以为分页是直接写sql语句,然后执行sql语句,但是 抛出QuerySyntaxException unexpected token: limit错误,
然后百度发现,JPQL里面没有limit的,
使用Hibernate的setFirstResult,setMaxResults实现数据库分页 ,列如query.setFirstResult(0),query.setMaxResults(10);相当于MySQL中的limit 0,10;
然后就执行成功了
@SuppressWarnings("unchecked")
public List<User> findPage(Page page) {
int pageSize = page.getPagesize();//页面大小
// int Pageno =page.getPageno();
int Startrow = page.getStartrow();//计算起始行
String sql = "SELECT u FROM User u ORDER BY u.name ASC";
List<User> users = getEntityManager()
.createQuery(sql)
.setFirstResult(Startrow)
.setMaxResults(pageSize)
.getResultList();
return users;
}