Oracle11g 使用foreach的mybatis oracle批更新
我正在尝试将记录列表插入到Oracle 11g表中。我在foreach中尝试了MyBatis语法,但在ORA-00933:SQL命令未正确结束异常(当列表有多条记录时)中失败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
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是集合的可能副本