浏览 2306 次
锁定老帖子 主题:一个完整的Criteria查询例子
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-22
public List<ResourceContent> findResourceBySearch( ResourceContent resourceContent, int off, int max, Object... date) { Session session = this.getSession(true); Criteria ca = session.createCriteria(ResourceContent.class); String resourceName = null; Criterion resource = Expression.like("name", "%" + resourceContent.getName() + "%"); Criterion start = Expression.ge("createdTime", date[0]); Criterion end = Expression.le("createdTime", date[1]); Criterion typeID = Expression.eq("resourceTypeID", resourceContent .getResourceTypeID()); if (resourceContent.getName() != null) { ca.add(resource); } if (date[0] != null) { ca.add(start); } if (date[1] != null) { ca.add(end); } if (resourceContent.getResourceTypeID() != 0) { ca.add(typeID); } ca.setFirstResult(off); ca.setMaxResults(max); ca.addOrder(Order.desc("createdTime")); List<ResourceContent> resourceList = ca.list(); this.releaseSession(session); return resourceList; }
Expression.eq相当于String的equals方法 Expression.le比较两个属性的值,对应SQL中的“field < field” Expression.ge比较两个属性的值,对应SQL中的“field > field” ca.addOrder 排序 ca.setMaxResults:每次查询的最大记录数 ca.setFirstResult:偏移量 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-08-27
"%" + resourceContent.getName() + "%"
这种建议用MATCHMode.anywhere代替 |
|
返回顶楼 | |