使用Insert All多次插入Oracle Mybatis Spring

使用Insert All多次插入Oracle Mybatis Spring,oracle,mybatis,Oracle,Mybatis,我试图使用Mybatis foreach功能将对象列表插入到Oracle数据库中的单个表中 例如,我有一个表“Test_a”,它有一个可为空的VARCHAR列“Description” 我将字符串列表传递给mybatis方法,其映射器如下所述 <insert id = "testMultipleInserts" parameterType="java.util.List"> Insert All <foreach collection="list" item

我试图使用Mybatis foreach功能将对象列表插入到Oracle数据库中的单个表中

例如,我有一个表“Test_a”,它有一个可为空的VARCHAR列“Description”

我将字符串列表传递给mybatis方法,其映射器如下所述

<insert id = "testMultipleInserts"  parameterType="java.util.List">
    Insert All 
    <foreach collection="list" item="element" index="index">
        Into Test_A (Description) values (#{element.description})
    </foreach>
    select * from dual
</insert>
我希望它的语法与我在SQL Browser中执行的Oracle方言一致,这样就行了

但是从提供给方法的list参数中读取list元素似乎存在一些问题。我得到一个例外,如下所示

      org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_element_0' not found. Available parameters are [list]

我不知道您正在尝试的查询,但堆栈跟踪清楚地表明,它的参数问题将parameterType从java.util.List更改为List


是否确实没有任何元素.description不为null?为什么从dual中选择*呢?我正在将列表中的所有非空值传递给element.description。关于select*from dual,我真的不知道为什么我们必须提供它,但在某个地方读到,它必须遵循Oracle中的Insert all语句。它可以是select*from dual或任何select查询from dual。
      org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_element_0' not found. Available parameters are [list]
<insert id = "testMultipleInserts"  parameterType="list">
    Insert All 
    <foreach collection="list" item="element" index="index">
        Into Test_A (Description) values (#{element.description})
    </foreach>
    select * from dual
</insert>