预期:参数对象类型无效预期' Java.util.List'

时间:2015-08-05 02:31:01

标签: java spring oracle ibatis

现在,我想更新我的批量数据,但是当我按如下方式运行控制台时:

  

--- ibatis-config / emptyForIbatisParse_sqlmap.xml中发生错误   ---准备执行的映射语句时发生错误   ---检查VehQuaCer.updateAmtBal   ---原因:java.sql.SQLException:参数对象类型无效。预期' java.util.List'但发现了   ' app.creditapp.lam.entity.VehQuaCer'。嵌套异常是   com.ibatis.common.jdbc.exception.NestedSQLException:
  ---错误发生在ibatis-config / emptyForIbatisParse_sqlmap.xml中   ---准备执行的映射语句时发生错误   ---检查VehQuaCer.updateAmtBal   ---原因:java.sql.SQLException:参数对象类型无效。预期' java.util.List'但发现了   ' app.creditapp.lam.entity.VehQuaCer'

我的DaoImpl方法如下:

public void updateRelease(final List<VehQuaCer> list) throws DAOException {
        try{
        if(list!=null){
            this.getSqlMapClientTemplate().execute(new SqlMapClientCallback(){
                public Object doInSqlMapClient(SqlMapExecutor executor)throws SQLException{
                    executor.startBatch();
                    for(int i=0,j=list.size();i<j;i++){
                        executor.update("VehQuaCer.updateAmtBal",(VehQuaCer)list.get(i));
                    }
                    executor.executeBatch();
                    return null;
                }
            });
        }
    }catch(Exception e){
        log.error(e);
        throw new DAOException(e.getMessage());
    }

    }

我的ibatis如下:

<update id="VehQuaCer.updateAmtBal" parameterClass="java.util.List">
    begin
    <iterate conjunction="">
    UPDATE VEH_QUA_CER SET REPAY_BAL=#[].repayBal#,SEC_BAL=#[].secBal#,ADV_BAL=#[].advBal#,RELEASE_APP_NO=#[].releaseApp# WHERE ID=#[].id#
    </iterate>
    end;
    </update>

1 个答案:

答案 0 :(得分:0)

从您提供的代码看来,您的查询似乎期望参数为List,但是因为在您的DAOImpl中,如果您已经遍历列表并仅传递&#309; VehQuaCer&#39;对象,所以将paramterclass更改为具有完全yqualified名称的VehQuaCer应该有效。