欢迎来到天天文库
浏览记录
ID:38364174
大小:60.00 KB
页数:11页
时间:2019-06-11
《Criteria用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、CriteriaQuery通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,CriteriaQuery可以看作是传统SQL的对象化表示,如:Criteriacriteria=session.createCriteria(User.class);criteria.add(Expression.eq("name","Erica"));criteria.add(Expression.eq("sex",newInteger(1)));Criteria查询表达式Criteria本身只是一个查询容器,具体的查询条件需要通过Criteria.add方
2、法添加到Criteria实例中。如前例所示,Expression对象具体描述了查询条件。针对SQL语法,Expression提供了对应的查询限定机制,包括:方法描述Expression.eq对应SQL“field=value”表达式。如Expression.eq("name","Erica")Expression.allEq参数为一个Map对象,其中包含了多个属性-值对应关系。相当于多个Expression.eq关系的叠加。Expression.gt对应SQL中的“field>value”表达式Expression.ge对应SQL中的“field>
3、=value”表达式Expression.lt对应SQL中的“field4、L中的“field=field”。如:Expression.eqProperty("TUser.groupID","TGroup.id");Expression.gtProperty用于比较两个属性之间的值,对应SQL中的“field>field”。Expression.geProperty用于比较两个属性之间的值,对应SQL中的“field>=field”。Expression.ltProperty用于比较两个属性之间的值,对应SQL中的“field5、“field<=field”。Expression.andand关系组合。如:Expression.and(Expression.eq("name","Erica"),Expression.eq("sex",newInteger(1)));Expression.oror关系组合。如:Expression.or(Expression.eq("name","Erica"),Expression.eq("name","Emma"));Expression.sql作为补充,本方法提供了原生SQL语法的支持。我们可以通过这个方法直接通过SQL语句限定查询条件6、。下面的代码返回所有名称以“Erica”起始的记录:Expression.sql(“lower({alias}.name)likelower(?)”,"Erica%",Hibernate.STRING);其中的“{alias}”将由Hibernate在运行期使用当前关联的POJO别名替换。注意Expression各方法中的属性名参数(如Express.eq中的第一个参数),这里所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。Criteria高级特性限定返回的记录范围通过criteria.setFirstRes7、ult/setMaxResults方法可以限制一次查询返回的记录范围:Criteriacriteria=session.createCriteria(TUser.class);//限定查询返回检索结果中,从第一百条结果开始的20条记录criteria.setFirstResult(100);criteria.setMaxResults(20);对查询结果进行排序//查询所有groupId=2的记录//并分别按照姓名(顺序)和groupId(逆序)排序Criteriacriteria=session.createCriteria(TUser.clas8、s);criteria.add(Expression.eq("groupId",newInteger(2)));crite
4、L中的“field=field”。如:Expression.eqProperty("TUser.groupID","TGroup.id");Expression.gtProperty用于比较两个属性之间的值,对应SQL中的“field>field”。Expression.geProperty用于比较两个属性之间的值,对应SQL中的“field>=field”。Expression.ltProperty用于比较两个属性之间的值,对应SQL中的“field5、“field<=field”。Expression.andand关系组合。如:Expression.and(Expression.eq("name","Erica"),Expression.eq("sex",newInteger(1)));Expression.oror关系组合。如:Expression.or(Expression.eq("name","Erica"),Expression.eq("name","Emma"));Expression.sql作为补充,本方法提供了原生SQL语法的支持。我们可以通过这个方法直接通过SQL语句限定查询条件6、。下面的代码返回所有名称以“Erica”起始的记录:Expression.sql(“lower({alias}.name)likelower(?)”,"Erica%",Hibernate.STRING);其中的“{alias}”将由Hibernate在运行期使用当前关联的POJO别名替换。注意Expression各方法中的属性名参数(如Express.eq中的第一个参数),这里所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。Criteria高级特性限定返回的记录范围通过criteria.setFirstRes7、ult/setMaxResults方法可以限制一次查询返回的记录范围:Criteriacriteria=session.createCriteria(TUser.class);//限定查询返回检索结果中,从第一百条结果开始的20条记录criteria.setFirstResult(100);criteria.setMaxResults(20);对查询结果进行排序//查询所有groupId=2的记录//并分别按照姓名(顺序)和groupId(逆序)排序Criteriacriteria=session.createCriteria(TUser.clas8、s);criteria.add(Expression.eq("groupId",newInteger(2)));crite
5、“field<=field”。Expression.andand关系组合。如:Expression.and(Expression.eq("name","Erica"),Expression.eq("sex",newInteger(1)));Expression.oror关系组合。如:Expression.or(Expression.eq("name","Erica"),Expression.eq("name","Emma"));Expression.sql作为补充,本方法提供了原生SQL语法的支持。我们可以通过这个方法直接通过SQL语句限定查询条件
6、。下面的代码返回所有名称以“Erica”起始的记录:Expression.sql(“lower({alias}.name)likelower(?)”,"Erica%",Hibernate.STRING);其中的“{alias}”将由Hibernate在运行期使用当前关联的POJO别名替换。注意Expression各方法中的属性名参数(如Express.eq中的第一个参数),这里所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。Criteria高级特性限定返回的记录范围通过criteria.setFirstRes
7、ult/setMaxResults方法可以限制一次查询返回的记录范围:Criteriacriteria=session.createCriteria(TUser.class);//限定查询返回检索结果中,从第一百条结果开始的20条记录criteria.setFirstResult(100);criteria.setMaxResults(20);对查询结果进行排序//查询所有groupId=2的记录//并分别按照姓名(顺序)和groupId(逆序)排序Criteriacriteria=session.createCriteria(TUser.clas
8、s);criteria.add(Expression.eq("groupId",newInteger(2)));crite
此文档下载收益归作者所有