错误代码
下班前发现同事提交代码报错,错误代码如下所示
sql
<insert id="addUsTmApplication" keyProperty="id" useGeneratedKeys="true">
insert into biz_us_tm_application(trademark_id,data) values(#{trademarkId},#{data})
</insert>
异常日记
<== Updates: 1
Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@61be765e]
19:18:19 ERROR c.z.p.c.o.s.i.OrderImportServiceImpl - error in save us tm import application
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found. Available parameters are [data, trademarkId, param1, param2]
问题原因
mybatis解析出错,参数是通过param方式传入的,id无法解析到对应的属性
解决方法
既然没有对象是承接id,就不要在多次一举了,害人又害己
<insert id="addUsTmApplication" >
insert into biz_us_tm_application(trademark_id,data) values(#{trademarkId},#{data})
</insert>