Как прочитать SQL Server вставки / обновления в значение с mybatis? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь получить значение поля SYSSTARTTIME временной таблицы SQL Sever с помощью myBatis и не могу его выяснить.У меня было что-то вроде этого:

<insert id="insertVersionedTableData" parameterType="com.me.dao.vo.DataVO">
    <selectKey keyProperty="systemStartTm" resultType="java.util.Date" order="AFTER">
        SELECT sysstarttm FROM @MyTableVar;
    </selectKey>
    DECLARE @MyTableVar TABLE (sysstarttm datetime);
    INSERT INTO
        dbo.versioned_table (id, first_name, last_name)
    OUTPUT inserted.system_start_tm into @MyTableVar
    VALUES (#{id}, #{firstName}, #{lastName});
</insert>

Когда я запускаю это, хотя я вижу вставку в журнале консоли, но затем выдает исключение, говорящее, что @MyTableVar должен быть объявлен, так что переменная таблицы выходит из строяобласти видимости после вставки и тега выполняется точно так же, как обычный SELECT

Я также попробовал функциональность сгенерированных ключей, но myBatis ожидает, что ключ будет первым полем в таблице, которым не является мое автоматически сгенерированное SYSTEMSTARTTIME.

...