hibernate中Criteria实现复合条件查询
2018-02-02 14:01
471 查看
分页查询+多条件查询
分页查询+多条件查询,使用Criteria查询,逻辑清楚而且方便,避免了过多的if else 语句。以下代码中因为查询结果要进行分页,多以将每页数据和查询总数封装到map中传到前台,以供前台bootstrap-table插件使用public Map<String, List> dataByPageItem(int pageNow, int pageSize, String searchText, String flag,String jurisdiction, String severity) { // TODO Auto-generated method stub Map myMap = new HashMap<String, List>(); Integer total; // 所有item数据分页 Session session = this.getSessionSelf(); Criteria crit = session.createCriteria(Item.class); crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);//解决查询处理的数据重复的问题 Conjunction conjunction = Restrictions.conjunction(); //and关系 Disjunction disjunction = Restrictions.disjunction(); //or关系 if(!"9".equals(flag) && flag != ""){ int flagInt = Integer.parseInt(flag); Criterion flagCriterion = Restrictions.eq("flag",flagInt); conjunction.add(flagCriterion); } if(jurisdiction!=""){ Criterion jurisdictionCrt = Restrictions.like("jurisdiction", jurisdiction); conjunction.add(jurisdictionCrt); } if(severity!=""){ Criterion severityCrt = Restrictions.like("severity", severity); conjunction.add(severityCrt); } if(searchText != ""){ Criterion address = Restrictions.like("address", searchText); Criterion description = Restrictions.like("description", searchText); Criterion dealName = Restrictions.like("dealName", searchText); Criterion dataTime = Restrictions.like("dataTime", searchText); disjunction.add(address); disjunction.add(description); disjunction.add(dealName); disjunction.add(dataTime); conjunction.add(disjunction); } //排序 crit.add(conjunction).addOrder(Order.desc("dataTime")); // 增加查询条件 Criteria critCount = crit; total = critCount.list().size(); //分页 crit.setFirstResult((pageNow - 1) * pageSize); crit.setMaxResults(pageSize); List<Item> list = crit.list(); List<Integer> listTotal = new ArrayList<Integer>(); listTotal.add(total); myMap.put("total", listTotal);//总数 myMap.put("rows", list);//每页数据 return myMap; }
相关文章推荐
- Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询
- hibernate-DetachedCriteria实现关联表条件复查
- Hibernate实现单表和多表的多条件查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 通过实体反射实现CriteriaQuery并列条件查询
- Hibernate-Criteria查询(3)DetachedCriteria构造查询条件、命名查询、原生SQL、调用存储过程(使用JDBC)
- Hibernate条件查询(Criteria Query)
- Hibernate3的DetachedCriteria实现分页查询
- Hibernate实现不带条件的简单分页查询
- Hibernate条件查询(DetachedCriteria)
- Hibernate条件查询(Criteria Query)
- Hibernate的动态条件查询DetachedCriteria
- Hibernate条件查询(Criteria Query)
- 【java】spring-data-jpa 集成hibernate实现多条件分页查询
- hibernate --Criteria条件查询
- 使用Hibernate criteria进行分页查询时,如何实现一次查询取得总记录数和分页后结果集
- Hibernate动态条件查询(Criteria Query)
- hibernate查询之Criteria实现分页方法(GROOVY语法)
- Hibernate使用原生的动态sql实现带条件的查询分页功能
- Hibernate之DetachedCriteria动态条件查询