随笔-21  评论-29  文章-0  trackbacks-0

Criteria
    Criteria是一种比HQL更面向对象的查询方式。Criteria的创建方式:
      Criteria  crit = session.createCriteria(DomainClass.class);
      简单属性条件如: criteria.add(Restrictions.eq(propertyName,value));
                                        criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName));

新建一Cri类来测试Criteria查询

package cn.itcast.hibernate;

import java.util.Date;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import cn.itcast.hibernate.domain.User;

public class Cri {

    
public static void main(String[] args) {
        cri(
"name");

    }

    
static void cri(String name){
    Session s 
= null ;
    
try{
        s 
= HibernateUtil.getSession();
        Criteria c 
= s.createCriteria(User.class );//查询User对象
        c.add(Restrictions.eq("name",name)); //不是查询全部,加限制为name属性值等于name的
        c.add(Restrictions.lt("birthday",new Date()));//可同时加入多个查询条件,此处要求出生日期小于当前日期
        
        c.setFirstResult(
0); //分页查询
        c.setMaxResults(10); 
        
        List
<User> list = c.list();
        User u 
= (User)c.uniqueResult(); 
        System.out.print(u);
        
for(User user : list){
            System.out.println(user.getName());
        }

    }
finally {
        
if(s !=null)
            s.close();
              }

    }

}
   


官方还是推荐使用HQL查询,因为HQL更强大一些。个人觉得Criteria比较容易理解

posted on 2009-05-04 16:32 特立独行 阅读(342) 评论(0)  编辑  收藏 所属分类: Hibernate框架

只有注册用户登录后才能发表评论。


网站导航: