1
我在JAVA中使用MyBatis作爲數據庫框架,我試圖在表中插入行時自動生成兩個值:任務ID和另一個值。這是我的查詢:如何在運行時插入時自動生成兩個值?
<insert id="insertTwoValuesSequentialluy" parameterType="com.example.autogenerated.Task" >
<selectKey resultType="java.lang.String" keyProperty="taskId" order="BEFORE" >
select MY_TASK_ID_SEQUENCE.nextval from dual
</selectKey>
insert into DYDA_D.TASK_TABLE (taskId, otherVariable, autogeneratedValue)
values (#{taskId,jdbcType=VARCHAR},
#{otherVariable,jdbcType=VARCHAR},
MY_SECOND_SEQUENCE.nextval = #{autogeneratedValue,jdbcType=VARCHAR})
</insert>
代碼工作正常,但我有以下問題:當在運行任務實例獲取其成員任務id設置好的,它不會發生同樣與autogeneratedValue ,雖然當我檢查數據庫時,我可以看到匹配的列autogeneratedValue對於這個新行不爲空。如何在運行時設置自動生成值而不需要進行選擇查詢?
PS:不注意逗號等,我有很多列,我已經刪除了大部分列表,並在其他部分更改了這個片段的名稱。我的代碼點是你看我怎麼已經生成的值,我用等標籤
是它的ID或任務id屬性中keyColumn ? – Fernando
我得到一個SQLException:這個函數不被支持,錯誤代碼[17023] – Fernando
我輸入錯誤 - keyColumn應該包含逗號分隔的列和keyProperty逗號分隔的相應屬性列表。 –