[英]MyBatis: getting id from inserted array of object returns error
我使用mybatis 3.3.0-SNAPSHOT。 我想插入对象列表,并获取每个对象的id。 在接口我有:
public void createCore(@Param("cores")List<Object> cores);
在xml mapper中我有:
<insert id="createCore" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
INSERT INTO mytable (raz,dva,tri )
VALUES
<foreach collection="cores" item="core" separator=",">
(#{core.raz}, #{core.dva}, #{core.tri})
</foreach>
</insert>
我得到:
更新数据库出错。 原因:org.apache.ibatis.executor.ExecutorException:生成错误
键或将结果设置为参数对象。 原因:org.apache.ibatis.binding.BindingException:找不到参数'id'。 可用参数是[cores,param1]
我试过和keyProperty =“core.id”但得到了同样的错误。
怎么解决?
这个问题在版本3.3.1中得到修复
尝试使用usegeneratedkeys插入多行时也遇到了这个错误。
我发现的解决方法修复程序在这里提到: http : //mybatis-user.963551.n3.nabble.com/MyBatys-Batch-Insert-doubt-error-retrieving-generated-id-binding-to-POJO-td4029977.html
您只需将参数重命名为“list”即可。 所以上面的例子中的“核心” - >“列表”,自动生成的ID正在工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.