java.lang.IllegalArgumentException: id to load is required for loading
报错:
首先,这个报错的原因:在使用hibernate时,有时会遇到这个异常:java.lang.IllegalArgumentException: id to load is required for loading,这是因为在使用类似findbyId(id)的查询时,传入的id为null,
我们首先应该排查到具体的错误代码,使用debug运行查看具体哪个地方的数据没有查询到。
以我下面的代码为例:
public boolean formdataspecExist(QmFormData formdata) throws FrameExecuteException {
List<QmFormData> queryForList = null;
//判断具体的要传过来的id值是否未空
if(formdata.getPlanworkres().getCod() !=null && StringUtils.isNotEmpty(formdata.getPlanworkres().getCod())&&StringUtils.isNotEmpty(formdata.getPlant().getCod())&&formdata.getPlant().getCod()!=null) {
//自行拼写hql语句
queryStruct.clear().contactHql("From QmFormData f where typ=6 ");
queryStruct.contactHql("and f.plant.cod=:PlantCod").addParam("PlantCod", formdata.getPlant().getCod());
queryStruct.contactHql("and f.planworkres.cod like '%"+formdata.getPlanworkres().getCod().trim()+"%'");
queryForList= baseDao.query(queryStruct.getHql(), queryStruct.getQueryParams());
}
最终问题已被解决,这是本人第一次在CSDN发布在工作的时候遇到的问题的文章,
以后也会经常更新在工作中遇到的问题 希望能得到大家的支持