5
挿入時に同じテーブルに2つの異なるIDを設定する必要があり、selectKeyを使用してOracleシーケンスから値を取得してIDを設定しようとしています。ibatisでは、同じinsertクエリで複数のselectKey句を使用できますか?
1つのidとselectKeyでは問題はありませんが、2番目のselectKeyを追加すると、値が入力されていないように見えます(下記のinsert stanzaを参照)。
これは可能ですか?または、2番目の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>
私は自分の契約に答えるのが好きではありませんが、結局答えはどこかで見つけました。うまくいけば、これは将来誰かを助けるでしょう。 –
私はMS SQLを使用していますが、同様の要件があります。ここでシーケンスから** MY_SECOND_ID **を取得する代わりに、別のテーブルからフェッチする必要があります。シーケンスの代わりに選択クエリを使用することは可能ですか? –
私はMS SQLを使用してからしばらくしていますが、おそらく (SELECT ID FROM yourQuery)をMY_SECOND_ID_SEQUENCE.nextvalの代わりに追加していますか? –