Hibernate中,利用Criteria查询容器实现sql的写法
来源:互联网 发布:美萍足浴 sql版 编辑:程序博客网 时间:2024/06/04 08:20
Criteria本身只是一个查询容器,具体的查询条件需要通过Criteria.add方法添加到Criteria实例中。
Criteria接口有很多重要的方法,如:
1、获取唯一结果的uniqueResult()
2、可实现分页的setFirstResult()和setMaxResult()方法
3、addOrder()排序方法
4、add()关联
第一步,创建一个Criteria实例
org.hibernate.Criteria接口表示特定持久类的一个查询。Session是Criteria实例的工厂。
Criteria c = Sessioin().createCriteria(Hrm.class);
c.setMaxResult(50);
第二步,org.hibernate.criterion.Restrictions类定义了获得某些内置Criterion类型的工厂方法。
c.add( Restrictions.like("name", "Fritz%") );
.add( Restrictions.or(Restrictions.eq( "age", new Integer(0) ),
Restrictions.isNull("age")) );
.add( Restrictions.in( "name", new String[]{"Fritz","Izi"}));
.add( Restrictions.ge("createDate",createDateF));
.add( Restrictions.le("createDate",createDateT));
.add( Restrictions.between("age",13,50));
c.addOrder( Order.asc("name"));
第三步,很重要,利用org.hibernate.criterion.Projections来增加查询字段。
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("name"));
projectionList.add(Projections.sum("age"));
projectionList.add(Projections.groupProperty("name"));
c.setProjection(projectionList); //别忘了加
List list = c.list();
以上几步等同于生成如下SQL: select name,sum(age) from hrm h where h.name like "Fritz%" or age = 0 and name in ("Fritz","Izi") and h.create_date >= createDateF and h.create_date <= createT and h.age between 13 and 50 group by h.name order by h.name.
总结,以上sql是错误的无法运行,在这里只是说明Criteria的用法,其封装后生成的sql语句是如此。
Criteria接口有很多重要的方法,如:
1、获取唯一结果的uniqueResult()
2、可实现分页的setFirstResult()和setMaxResult()方法
3、addOrder()排序方法
4、add()关联
第一步,创建一个Criteria实例
org.hibernate.Criteria接口表示特定持久类的一个查询。Session是Criteria实例的工厂。
Criteria c = Sessioin().createCriteria(Hrm.class);
c.setMaxResult(50);
第二步,org.hibernate.criterion.Restrictions类定义了获得某些内置Criterion类型的工厂方法。
c.add( Restrictions.like("name", "Fritz%") );
.add( Restrictions.or(Restrictions.eq( "age", new Integer(0) ),
Restrictions.isNull("age")) );
.add( Restrictions.in( "name", new String[]{"Fritz","Izi"}));
.add( Restrictions.ge("createDate",createDateF));
.add( Restrictions.le("createDate",createDateT));
.add( Restrictions.between("age",13,50));
c.addOrder( Order.asc("name"));
第三步,很重要,利用org.hibernate.criterion.Projections来增加查询字段。
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("name"));
projectionList.add(Projections.sum("age"));
projectionList.add(Projections.groupProperty("name"));
c.setProjection(projectionList); //别忘了加
List list = c.list();
以上几步等同于生成如下SQL: select name,sum(age) from hrm h where h.name like "Fritz%" or age = 0 and name in ("Fritz","Izi") and h.create_date >= createDateF and h.create_date <= createT and h.age between 13 and 50 group by h.name order by h.name.
总结,以上sql是错误的无法运行,在这里只是说明Criteria的用法,其封装后生成的sql语句是如此。
- Hibernate中,利用Criteria查询容器实现sql的写法
- Hibernate中,利用Criteria查询容器实现sql的写法
- hibernate中利用criteria分页的实现
- hibernate中criteria查询
- hibernate中Criteria查询
- Hibernate中Criteria的使用(条件查询)
- Hibernate查询—利用Criteria完成表的查询操作
- Hibernate的Criteria查询
- Hibernate-HQL、Criteria、SQL实现查询对照以及增删改
- Hibernate-HQL、Criteria、SQL实现查询对照以及增删改
- Hibernate使用Criteria实现查询
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- 如何学习机器视觉
- C基础-Helloword
- leetcode题目:Best Time to Buy and Sell Stock III
- Android官方教程翻译(1)——创建第一个Android应用
- linux命令无法使用的解决办法,不用重装系统!
- Hibernate中,利用Criteria查询容器实现sql的写法
- bat批处理设置Java JDK系统环境变量文件
- Memcached的管理工具实现
- Linux系统下面使用pthread.h库时g++编译出错
- Linux 命令“ls ” 的用法
- u-boot-1.2.0移植到s3c2440(一)主要是对NAND和NOR的支持
- 向VMWare虚拟机添加一个串口设备(serial port)
- 黑马程序员_java基础知识三
- URAL 1650. Billionaires(线段树)