、>= result = (List)session.createQuery(hql) .setInteger"/> 、>= result = (List)session.createQuery(hql) .setInteger"/>
首页 HQL与Criteria对照

HQL与Criteria对照

举报
开通vip

HQL与Criteria对照 HQL Criteria 查询所有 String hql = "from Employee"; List result = (List)session.createQuery(hql) .list(); List result = (List)session.createCriteria(Employee.class) .list(); 条件过滤 =、!= >、>= result = (List)session.createQuery(hql) .setInteger...

HQL与Criteria对照
HQL Criteria 查询所有 String hql = "from Employee"; List result = (List)session.createQuery(hql) .list(); List result = (List)session.createCriteria(Employee.class) .list(); 条件过滤 =、!= >、>= <、<= String hql = "from Employee e where e.age = :age"; List result = (List)session.createQuery(hql) .setInteger("age", age) .list(); List result = (List)session.createCriteria(Employee.class) .add(Restrictions.eq("age", age)) // .add(Restrictions.ne("age", age)) // .add(Restrictions.gt("age", age)) // .add(Restrictions.ge("age", age)) // .add(Restrictions.lt("age", age)) // .add(Restrictions.le("age", age)) .list(); 条件过滤 between and String hql = "from Employee e where e.age between :fromAge and :toAge"; List result = (List)session.createQuery(hql) .setInteger("fromAge", fromAge) .setInteger("toAge", toAge) .list(); List result = (List)session.createCriteria(Employee.class) .add(Restrictions.between("age", fromAge, toAge)) .list(); 条件过滤 is null String hql = "from Employee e where e.department is null"; //String hql = "from Employee e where e.department is not null"; List result = List result = (List)session.createCriteria(Employee.class) .add(Restrictions.isNull("department")) // .add(Restrictions.isNotNull("department")) .list(); (List)session.createQuery(hql) .list(); 条件过滤 集合属性 size //String hql = "from Department d where d.employees is empty"; String hql = "from Department d where d.employees is not empty"; String hql = "from Department d where d.employees.size > 5"; String hql = "from Department d where d.employees.size < 5"; List result = (List)session.createQuery(hql) .list(); List result = (List)session.createCriteria(Department.cla ss) // .add(Restrictions.isEmpty("employees")) .add(Restrictions.isNotEmpty("employees")) // .add(Restrictions.sizeGt("employees", 5)) // .add(Restrictions.sizeLt("employees", 5)) .list(); 条件过滤 通配符 String hql = "from Employee e where e.name like :name"; List result = (List)session.createQuery(hql) .setString("name", name+"%") .list(); List result = (List)session.createCriteria(Employee.class) .add(Restrictions.like("name", name + "%")) // .add(Restrictions.like("name", name, MatchMode.START)) .list(); 条件过滤 多条件 String hql = "from Employee e where (e.department is not null and e.age > 25) or e.age < 25"; List result = (List)session.createQuery(hql) .list(); List result = (List) session.createCriteria(Employee.class) .add(Restrictions.or( Restrictions.and( Restrictions.isNotNull("department"), Restrictions.gt("age", 25) ), Restrictions.lt("age", 25)) ) .list(); 条件过滤 in String hql = "from Employee e where e.id in (1, 2, 3)"; List result = (List)session.createQuery(hql) .list(); List result = (List) session.createCriteria(Employee.class) .add(Restrictions.in("id", new Integer[]{1,2,3})) .list(); 排序 String hql ="from Employee e order by e.age"; String hql ="from Employee e order by e.age desc"; session.createCriteria(Employee.class) .addOrder(Order.asc("age")) .addOrder(Order.desc("age")) 投影 select 1列 String hql = "select e.name from Employee e"; Query query = session.createQuery(hql); List result = (List)query.list(); List result = (List)session.createCriteria(Employee.class) .setProjection(Projections.property("name")) .list(); 投影 select 多列 String hql = "select e.name, e.age from Employee e"; Query query = session.createQuery(hql); List result = (List)query.list(); List result = (List)session.createCriteria(Employee.class) .setProjection(Projections.projectionList() .add(Projections.property("name")) .add(Projections.property("age")) ) .list(); 聚集 Count Max Min String hql = "select count(age), max(age), min(age), avg(age), sum(age) from Employee"; Object[] result = Object[] result = (Object[]) session.createCriteria( Employee.class) .setProjection(Projections.projectionList() .add(Projections.rowCount()) Avg Sum (Object[])session.createQuery(hql) .uniqueResult(); .add(Projections.max("age")) .add(Projections.min("age")) .add(Projections.avg("age")) .add(Projections.sum("age")) ) .uniqueResult(); 投影 Result Transfe r String hql = "select new com.jeff.vo.StatInfo(count(e.id), max(e.age), min(e.age), avg(e.age)) from Employee e"; Query query = session.createQuery(hql); List result = (List)query.list(); List result = (List)session.createCriteria(Employee.class) .setProjection(Projections.projectionList() .add(Projections.count("id").as("count")) .add(Projections.max("age").as("maxAge")) .add(Projections.min("age").as("minAge")) .add(Projections.avg("age").as("avgAge")) ) .setResultTransformer(Transformers.aliasToBean(StatI nfo.class)) .list(); 分组 Group by String hql = "select e.department.name, count(age), max(age), min(age), avg(age), sum(age) from Employee e group by e.department"; List result = (List)session.createQuery(hql) .list(); List result = (List)session.createCriteria( Employee.class) .setProjection(Projections.projectionList() .add(Projections.property("department")) .add(Projections.rowCount()) .add(Projections.max("age")) .add(Projections.min("age")) .add(Projections.avg("age")) .add(Projections.sum("age")) .add(Projections.groupProperty("department")) ) .list(); 联结 Join //String hql = "from Employee e where e.department.id = 9"; //隐式联结 String hql = "select e from Employee e join e.department d where d.id = 9"; //显式联结 Query query = session.createQuery(hql); List result = (List)query.list(); List result = (List)session.createCriteria(Employee.class) //createCriteria是Session的方法 .add(Restrictions.gt("age", 25)) .createCriteria("department") //createCriteria是 Criteria的方法 .add(Restrictions.eq("id", 9)) .list(); List result = (List)session.createCriteria(Employee.class) .createAlias("department", "d") .add(Restrictions.gt("age", 25)) .add(Restrictions.eq("d.id", 9)) .list(); 动态抓取 Fetch String hql = "from Department d left join fetch d.employees where d.id = 9"; Query query = session.createQuery(hql); department = (Department)query.uniqueResult(); department = (Department)session.createCriteria(Department.class) .setFetchMode("employees", FetchMode.JOIN) .add(Restrictions.eq("id", 9)) .uniqueResult(); 命名查询 Named //Query query = session.getNamedQuery("getByAge"); Query Query query = session.getNamedQuery("com.jeff.model.Employee .getByAge"); query.setInteger("ageParam", 25); List result = (List)query.list(); 离线查询 Detache dCriter ia DetachedCriteria cond = DetachedCriteria.forClass(Employee.class) .add(Restrictions.eq("age", 25)); List result = cond.getExecutableCriteria(session).list();
本文档为【HQL与Criteria对照】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_023580
暂无简介~
格式:pdf
大小:48KB
软件:PDF阅读器
页数:6
分类:互联网
上传时间:2011-12-15
浏览量:12