首页 > 编程语言 > 详细

Java Criteria使用方法

时间:2021-06-30 18:31:31      阅读:12      评论:0      收藏:0      [点我收藏+]

Criteria Query 可以看作传统sql的对象化表示。
Criteria 可以由session创建。

Criteria ct= session.createCriteria(TUser.class);

先来一段小Demo:

TbItemParamExample example = new TbItemParamExample();
Criteria criteria = example.createCriteria();
criteria.andItemCatIdEqualTo(cid);

Criteria中可以增加查询条件

ct.add(Expression.eq("name","Erica"));
 ct.add(Expression.eq("sex",new Integer(1))); 

Criteria中增加的查询条件可以由表达式对象创建
Expression.eq(对象属性名,对象属性值);

查询条件通过Criteria的add方法加入。

表达式对象的方法有:

  • eq 等于,第一个参数是对象属性,第二个参数是值

  • allEq 参数为一个Map对象,相当于多个eq的叠加

  • gt 大于

  • ge 大于等于

  • lt <

  • le <=

  • between 在两个值之间Expression.between("age",new Integer(10),new Integer(20));

  • like like查询

  • in in查询

  • eqProperty 用于比较两个对象的属性的值是否相等

  • gtProperty

  • geProperty

  • ltProperty

  • leProperty

  • and and方法可以嵌套Expression对象,用于and关系

  • or 同上

    Expression.or(
     Expression.eq("name","hulei"),
     Expression.eq("name","jane")
    );
    

sql 作为Expression对象的补充,本方法提供对原生sql的支持。注意,在Hibernate3中,引入了Restrictions类作为Expression的替代,以后的版本,不再推荐使用Expression。

但是,Restrictions类的使用方法和Expression的方法一致。注意,在查询条件中,Hibernate提供了一个Example查询,当查询条件比较多的时候,可以用Example查询来简化代码,使用方法如下:

   TUser user=new TUser();
   user.setLoginName("hulei");
   user.setPassword("hulei");
   Criteria ct=session.createCriteria(TUser.class);
   ct.add(Example.create(user));
   return ct.list();

复合查询

Criteria查询可以嵌套Criteria来实现复合查询
如下:

 Criteria ct=session.createCriteria(TUser.class);
 Criteria ctAddress=ct.createCriteria("addresses");//这里是嵌套了一个Criteria查询,这里的addresses是TUser的属性
 ctAddress.add(Expression.like("address","%shanghai%"));
 List list=ct.list();

Java Criteria使用方法

原文:https://www.cnblogs.com/satire/p/14954767.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!