1、通过getHibernateTemplate().getSessionFactory().getCurrentSession().createCriteria()创建criteria对象

2、criteria通过add方法将expression封装起来,criteria是接口,simpleExpression实现了该接口

3、criteria.list()方法,找到符合条件的结果

4、setFirstResult()、setMaxResults()设置开始记录和最大记录数

public List<Product> products(String name, String shortString,
   String itemNo, String categoryId, String subcategoryId,
   Integer offset, Integer length) throws Exception {
  Criteria criteria = openSession().createCriteria(Product.class);
  Criterion ors = null;
  if ((name != null) && (!"".equals(name.trim()))) {
   ors = Restrictions.like("name", name, MatchMode.ANYWHERE);
  }
  if ((shortString != null) && (!"".equals(shortString.trim()))) {
   if(ors == null)
    ors = Restrictions.like("shortString", shortString, MatchMode.ANYWHERE);
   else
    ors = Restrictions.or(ors, Restrictions.like("shortString", shortString, MatchMode.ANYWHERE));
  }
  if ((itemNo != null) && (!"".equals(itemNo.trim()))) {
   if(ors == null)
    ors = Restrictions.like("itemNo", itemNo, MatchMode.ANYWHERE);
   else
    ors = Restrictions.or(ors, Restrictions.like("itemNo", itemNo, MatchMode.ANYWHERE));
  }
  if(ors != null)
   criteria.add(ors);
  if ((categoryId != null) && (!"".equals(categoryId.trim()))) {
   criteria.add(Restrictions.eq("categoryId", categoryId));
  }
  if ((subcategoryId != null) && (!"".equals(subcategoryId.trim()))) {
   criteria.add(Restrictions.eq("subcategoryId", subcategoryId));
  }
  if (offset != null) {
   // 从第几条开始
   criteria.setFirstResult(offset.intValue());
  }
  if (length != null) {
   // 最大显示记录数
   criteria.setMaxResults(length.intValue());
  }
  return criteria.list();
 }

criteria 用法相关推荐

  1. Criteria用法的小结

    前几天做项目的时候,用到了Creiteria来查询和分页.实在好用.但本人愚笨,用了不少时间,今天有空把用法记录下来,备忘. 多条件循环查询: String comId = param.getComp ...

  2. Criteria用法

    原文:http://blog.csdn.net/saindy5828/article/details/16893257 criteria 英[kraɪˈtɪərɪə] 美[kraɪˈtɪrɪə] 标准 ...

  3. criteria和oracle数据库使用,[原创]条件查找Criteria用法

    Criteria c = session.createCriteria(User.class); if(user.getUser_name() != null){ c.add(Restrictions ...

  4. springboot 整合mongoTemplate的 Query Criteria 用法

    1.通过注解注入 mongoTemplate @Autowired private MongoTemplate mongoTemplate; 2.获取Query 和  Criteria 对象 Quer ...

  5. Hibernate 具体用法(自整理)

    为什么80%的码农都做不了架构师?>>>    框架的概念是一个提供了可重用的公共结构的半成品 SSH是指:Struts 2 + Spring + Hibernate 框架的强大之处 ...

  6. criteria使用

    需求: 查看全文 http://www.taodudu.cc/news/show-3664069.html 相关文章: MyBatis使用Criteria JavaWeb:Criteria类添加或条件 ...

  7. 那些年学过的Hibernate笔记

    Hibernate框架 属于ORM工具,以对象方式实现对数据库的操作.例如Hibernate.MyBatis.JPA等. 学习知识: 1.Hibernate基本使用(单表各种操作) 2.Hiberna ...

  8. hibernate中criteria的一些用法

    最近在项目中使用 Spring 和 Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法 设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 ...

  9. 转:Hibernate中Criteria和DetachedCriteria的完整用法

    原文地址:http://blog.sina.com.cn/s/blog_667528fd0100rkrf.html 设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 H ...

最新文章

  1. byte[]数组下标的最大值
  2. 网站的线下活动如何组织
  3. php 等5秒钟继续,android – 如何每5秒钟继续请求一个页面而不是杀死电池?
  4. 2020-12-22 一些有用的开源软件
  5. 光纤收发器具体是怎么分类的?
  6. Oracle常用操作命令
  7. c# word 增加段落_你知道制作简历时的9个Word技巧吗?
  8. Leetcode961. N-Repeated Element in Size 2N Array重复N次的元素
  9. Python使用matplotlib可视化模拟正弦余弦折线图
  10. Solidity教程:初学Solidity
  11. 前端项目:基于Nodejs+vue开发实现酒店管理系统
  12. .NET Framework 4.7.2离线安装程序
  13. java struts2教程_Struts2教程
  14. linux 中什么是进程号,Linux中脚本进程号由什么决定?
  15. Linux基础-apt-搜狗输入法
  16. 如何利用Ghost整理硬盘的磁盘碎片
  17. Web端H5播放FLV、HLS、MP4 (二)
  18. ssh_dispatch_run_fatal: Connection to 10.119.126.248 port 29418: incorrect signature fatal: Could no
  19. Python循环结构基础-continu/break
  20. 工欲善其事!有这些工具你才能修出一张完美的照片

热门文章

  1. java表白 520
  2. 【智哪儿评测】轻松玩转智能家居,萤石B1智家护卫传感套装评测
  3. ManualResetEvent 说明
  4. 云原生的 CICD 框架:Tekton
  5. 【正点原子Linux连载】第三章 RV1126开发环境搭建 摘自【正点原子】ATK-DLRV1126系统开发手册
  6. 算法总结——大整数乘法
  7. 〖大前端 - 基础入门三大核心之CSS篇④〗- CSS选择器之元素关系选择器、序号选择器与属性选择器
  8. 沪漂程序员的两年,终说再见,你会不会是下一个离开的人?
  9. facebook下载
  10. python对list列表进行排序方法总结