用Criteria实现多条件查询

方法

说明

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
	//就是这么多了


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值