转http://www.iteye.com/problems/47739
hibernate动态设置参数
List list = new ArrayList();
StringBuffer sql=new StringBuffer("select * from xxx t where 1=1 ");
if(!StringUtils.isEmpty(filter.getCompCode())){
sql.append(" and t.companyCode = :compCode ");
list.add(new Object[]{"compCode", filter.getCompCode()});
exitsCompCode=true;
}
if(!StringUtils.isEmpty(filter.getCompName())){
sql.append(" and p.company_chinese_name like :compName ");
list.add(new Object[]{"compName ", filter.getCompCode()});
exitsCompName=true;
}
Query query = session.createSQLQuery(sql.toString())
for(Object[] arr:list){
query.setParameter(arr[0],arr[1]);
}