编程论坛
注册
登录
编程论坛
→
J2EE论坛
[求助]Hibernate如何解决多条件进行模糊查询?
limaoyuan
发布于 2007-09-16 21:19, 4459 次点击
Criteria.add(Example.create(Object entity)) //据说这个方法可以,可我试了,不太成,如有五个条件,只填了其中的三条进行查
询,刚查不出结果。
除拼接HQL以外,还有没有什么好的解决办法!
多谢!
2 回复
#2
limaoyuan
2007-09-16 21:26
给个能实现的具体的例子也行,谢谢了
#3
ningkun
2007-09-16 22:49
/**
* 根据条件查询
*/
public List byStudent(String sno,String sname,String address,int classid){
Criteria critera = getSession().createCriteria(Student.class);//里面是一个class对象,而不是HQL
if(sno!=null&&!sno.equals("")){//如果equals在前面的话,容易报 nullpoint 异常
critera.add(Restrictions.like("sno", sno,MatchMode.ANYWHERE));
//如果是进行模糊查询的话,就要加一个参数,MatchMode.ANYWHERE ,否则就不能进行模糊查询
}
if(sname!=null&&!sname.equals("")){
critera.add(Restrictions.like("sname", sname,MatchMode.ANYWHERE));
}
if(address!=null&&!address.equals("")){
critera.add(Restrictions.like("address", address,MatchMode.ANYWHERE));
}
if(classid!=0){
critera.add(Restrictions.eq("classes.cid",new Integer(classid)));
}
return critera.list();
}
1