繁体   English   中英

将 <selectKey> 为MyBatis中的每个插入生成新的ID?

[英]will <selectKey> generate new id for each insert in MyBatis?

<insert id="insertIntoScheduleReportUserLink" parameterType="com.mypackage.model.ScheduleReport">

<selectKey keyProperty="id" resultType="java.lang.Integer" order="BEFORE">
  select NEXTVAL('schedule_report_user_link_sequence')
</selectKey>

  INSERT INTO schedule_report_user_link(
  id, schedule_report_detail_id, to_user_id)
<foreach collection="selectedUsers" item="user" separator=",">
  VALUES (#{id}, #{scheduleReportDetail.id}, #{user.id})
</foreach>;

</insert>

在这里,我使用每个循环到多个插入。 我需要知道selectKey是否为每个插入生成新的ID?

有没有更好的办法?

该循环仅在插入部分上运行,而不在密钥生成部分上运行。

因此,似乎密钥将生成一次。

不要依赖于运行少量数据的假设并亲自查看它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM