public List dynamicFind(final Class c, final User user) {
List list = getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException {

Criteria cr = session.createCriteria(c);

String name = user.getName();
if(null!=name){
cr.add(Restrictions.eq("name",name));
}
Integer age = user.getAge();
if(null!=age){
cr.add(Restrictions.eq("age", age));
}

cr.addOrder(Order.desc("age"));

return cr.list();
}


});
return list;
}无论是拼接字符串还是用QBC动态查询都要if判断为空,能否有更好的办法?
回调函数是否spring会关闭session?