由于在hql中使用参数绑定时,会去检查绑定的参数类型是否与实际一致,比如:
@Override
public List findByName(String name,String officeIds){
String queryString = "FROM MaterialDetail WHERE name = ? and officeId in (?)";
return findList(queryString, name,officeIds );
}
由于officeId在实体类中定义为Integer类型,此处传入String类型的officeIds会报类型转换异常。
解决方法如下:
@Override
public List findByName(String name,String officeIds){
String queryString = "FROM MaterialDetail WHERE name = ? and officeId in ("+officeIds+")";
return findList(queryString, name );
}