Oracle11g 使用foreach的mybatis oracle批更新

Oracle11g 使用foreach的mybatis oracle批更新,oracle11g,mybatis,Oracle11g,Mybatis,我正在尝试将记录列表插入到Oracle 11g表中。我在foreach中尝试了MyBatis语法,但在ORA-00933:SQL命令未正确结束异常(当列表有多条记录时)中失败 The generated sql in this case looks like: 更新客户设置应用程序名称=?,开始日期=?,结束日期=?其中customer_id=? 更新客户设置应用程序名称=?,开始日期=?,结束日期=?其中customer_id= Below is my the query in the ma

我正在尝试将记录列表插入到Oracle 11g表中。我在foreach中尝试了MyBatis语法,但在ORA-00933:SQL命令未正确结束异常(当列表有多条记录时)中失败

The generated sql in this case looks like:
更新客户设置应用程序名称=?,开始日期=?,结束日期=?其中customer_id=? 更新客户设置应用程序名称=?,开始日期=?,结束日期=?其中customer_id=

Below is my the query in the mapper:

<update id="updateApplication" parameterType="com.test.mybatis.Application">

        <foreach item="ca" collection="customer.applications.applcation"
            open="" close="" separator="">
        UPDATE CUSTOMER_T
        SET app_name = #{ca.appName,jdbcType=VARCHAR},      
        start_date = #{ca.startDate,jdbcType=DATE,javaType=javax.xml.datatype.XMLGregorianCalendar},
        end_date = #{ca.endDate,jdbcType=DATE,javaType=javax.xml.datatype.XMLGregorianCalendar}
        WHERE
        customer_id=#{customer.info.customerid}
        </foreach>      
    </update>    
下面是我在映射器中查询的结果:
更新客户信息
设置app_name={ca.appName,jdbcType=VARCHAR},
开始日期={ca.startDate,jdbcType=date,javaType=javax.xml.datatype.xmlgoriiancalendar},
end#u date=#{ca.endDate,jdbcType=date,javaType=javax.xml.datatype.xmlgoriiancalendar}
哪里
customer_id=#{customer.info.customerid}

如果有人能在这里发现问题,我将不胜感激。

分隔符
属性中,尝试输入
并查看它是否有效。已经尝试过了。。它不工作。
customer.applications.application
是集合吗?或者
customer.applications
是实际的集合吗?customer.applications.application是集合的可能副本