可以用query by example,
具体讲(以查user为例, user有name、 age 、pwd等属性)
比如已知name 和 age,查这个user,
那么可以构建一个user(作为查询用到的example,注意这里不需要判断name、age是否为空,直接可以赋值)
User user = new User();
use.setName(xxx);...
public List getMembersByConditions(Long minAge, Long maxAge, String gender,
String provincecity,int start,int end) throws Exception {
Session session = HibernateSessionFactory.getSession();
List list = null;
String str = "from MemberInfo where 1=1";
if(minAge!=null && maxAge!=null) {
str = str +" and age between "+minAge+" and "+maxAge;
}
if(!gender.equals("unlimited")) {
if(gender.equals("0")) {
str = str+" and gender='0'";
}else {
str = str+" and gender='1'";
}
}
if(!provincecity.equals("unlimited")) {
str = str +" and provinceCity="+provincecity;
}
Query query = session.createQuery(str+"order by nickName");
query.setFirstResult(start);
query.setMaxResults(end);
list = query.list();
return list;
}