在ibatis中是否可以在同一个插入查询中包含多个selectKey子句?

Jim*_*ord 7 java oracle ibatis

我需要在插入的同一个表中填充2个不同的ID,我试图使用selectKey从Oracle序列中提取值来填充ID.

使用一个id和selectKey我没有问题但是当我添加第二个selectKey时,该值似乎没有填充(请参阅下面的插入节).

是否有可能做到这一点?或者我是否需要创建另一个查询来更新第二个ID?

谢谢

<insert id="create" parameterClass="MyObject">
<selectKey keyProperty="id" resultClass="long" type="pre">
  <include refid="sequences.myObjectId" />
</selectKey>
<selectKey keyProperty="mySecondId" resultClass="long" type="pre">
  <include refid="sequences.mySecondId" />
</selectKey>    
INSERT INTO MY_OBJECT_TABLE 
(
MY_OBJECT_ID,
MY_SECOND_ID,
...
)
VALUES
)
#id#,
#mySecondId#,
...
)
</insert>
Run Code Online (Sandbox Code Playgroud)

Jim*_*ord 3

只可以有一个人!

最终我发现 ibatis 插入节中只能有一个节。

不过,我能够按如下方式更新第二个密钥(我相信这是 Oracle 特定的):

<insert id="create" parameterClass="MyObject">
<selectKey keyProperty="id" resultClass="long" type="pre">
  <include refid="sequences.myObjectId" />
</selectKey>
INSERT INTO MY_OBJECT_TABLE 
(
MY_OBJECT_ID,
MY_SECOND_ID,
...
)
VALUES
)
#id#,
MY_SECOND_ID_SEQUENCE.nextval,
...
)
</insert>
Run Code Online (Sandbox Code Playgroud)

MY_SECOND_ID_SEQUENCE是我之前定义的Oracle序列名称。