方法 | 说明 |
Restrictions.eq | = |
Restrictions.allEq | 利用Map来进行多个等于的限制 |
Restrictions.gt | > |
Restrictions.ge | >= |
Restrictions.lt | < |
Restrictions.le | <= |
Restrictions.between | BETWEEN |
Restrictions.like | LIKE |
Restrictions.in | in |
Restrictions.and | and |
Restrictions.or | or |
Restrictions.sqlRestriction | 用SQL限定查询 |
下面是一个例子:
@SuppressWarnings("unchecked")
public List<AdBean> getAds(){
List<AdBean> executeResult = (List<AdBean>)getHibernateTemplate().execute(
new HibernateCallback(){//回调函数
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(AdBean.class);//创造criteria
//这二个条件是指AdBean中的name属性和id属性的联合查
criteria.add(Restrictions.like("name", "%your var%"));//让name和你传进来的参数相似
criteria.add(Restrictions.eq("id", "100"));
//这个是指,在AdBean中有adPositionBean这个类,然后又要要把adPosition下面的id属性来查
criteria.createCriteria("adPositionBean").add(Restrictions.eq("id", "200"));
//如果想分页,下面我是把它写死的,写活也比较容易的,自己试.
//criteria.setFirstResult(0);
//criteria.setMaxResults(10);
//多条件添完了就可以查询了
return criteria.list();
}
});
return executeResult;
}
//这个方法没有传查询的条件进来,你可以把自己众多条件封装到一个类中打个包传个Bean进来.
//当你的条件很多的时候,可以把得到criteria这个东西单独再写成一个方法,把那些个多条件的搞定了再在一信要查询的方法里调用,更加OOP
//就是这么多了