一、經驗總結
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 );
}