hibernate用criteria排序后分页,怎么使用
1个回答
展开全部
/**
* 使用对象的查询方法
*
* @param c:查询的类
* @param obj:查询的对象
* @param orber:按那个字段排序
* @param row:每页多少条记录
* @param page:第几页
* @return List: 集合
*/
public List find(Class c, Object obj, String[] orber, int row, int page) {
List list = null;
try {
Criteria criteria = HibernateSessionFactory.getSession()
.createCriteria(c);
if (obj != null) {
Example example = Example.create(obj);
example.enableLike(MatchMode.ANYWHERE);// 匹配模式,使用模糊查询必填项。
example.excludeNone();// 空的不做查询条件
example.excludeZeroes();// 0不要查询
example.ignoreCase(); // 不区分大小写
criteria.add(example);
}
if (row > 0 && page > 0) {
criteria.setMaxResults(row);// 最大显示记录数
criteria.setFirstResult((page - 1) * row);// 从第几条开始
}
// 判断是否有排序请求,如果有加入到排序方法中
if (orber != null) {
for (int i = 0; i < orber.length; i++)
criteria.addOrder(Order.desc(orber[i]));
}
list = criteria.list();
return list;
} catch (HibernateException e) {
e.printStackTrace();
return null;
} finally {
HibernateSessionFactory.closeSession();
}
}
/**
*
* 使用对象的查询方法
*
* @param c:查询的类
* @param obj:查询的对象
* @param orber:按那个字段排序
* @param row:每页多少条记录
* @param page:第几页
* @return List: 集合
*/
public List find(Class c, Object obj, String[] orber, int row, int page) {
List list = null;
try {
Criteria criteria = HibernateSessionFactory.getSession()
.createCriteria(c);
if (obj != null) {
Example example = Example.create(obj);
example.enableLike(MatchMode.ANYWHERE);// 匹配模式,使用模糊查询必填项。
example.excludeNone();// 空的不做查询条件
example.excludeZeroes();// 0不要查询
example.ignoreCase(); // 不区分大小写
criteria.add(example);
}
if (row > 0 && page > 0) {
criteria.setMaxResults(row);// 最大显示记录数
criteria.setFirstResult((page - 1) * row);// 从第几条开始
}
// 判断是否有排序请求,如果有加入到排序方法中
if (orber != null) {
for (int i = 0; i < orber.length; i++)
criteria.addOrder(Order.desc(orber[i]));
}
list = criteria.list();
return list;
} catch (HibernateException e) {
e.printStackTrace();
return null;
} finally {
HibernateSessionFactory.closeSession();
}
}
/**
*
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询