Java Criteria使用方法


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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM