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?
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?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货