文章目录
一、经验总结
1.在hql中使用in语句
由于在hql中使用参数绑定时,会去检查绑定的参数类型是否与实际一致,比如:
@Override
public List<MaterialDetail> 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<MaterialDetail> findByName(String name,String officeIds){
String queryString = "FROM MaterialDetail WHERE name = ? and officeId in ("+officeIds+")";
return findList(queryString, name );
}

本文分享了在Hibernate Query Language (HQL)中使用IN语句时遇到的参数类型不匹配问题及解决方案。当实体类属性类型与传入参数类型不符时,直接使用参数绑定会导致类型转换异常。文章提供了通过字符串拼接方式绕过类型检查的解决方法。
794

被折叠的 条评论
为什么被折叠?



