簡體   English   中英

MyBatis:從插入的對象數組中獲取id返回錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM