将<selectkey>为MyBatis中的每个插入生成新的id?</selectkey>

时间:2014-12-11 10:39:36

标签: java spring postgresql 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?

有没有更好的方法?

1 个答案:

答案 0 :(得分:0)

循环只运行不在密钥生成部分的插入部分。

所以它似乎会生成一次密钥。

不要依赖假设来获取一些数据并为自己看待它。