INSERT 不返回多个生成的 ID

INSERT don't returning multiple generated ids

我目前正在尝试执行插入(请参阅 https://www.jooq.org/doc/latest/manual/sql-building/sql-statements/insert-statement/insert-returning/)。不同的是我不是直接用values,而是用set with record.

在日志中我看到执行了 2 个插入,但在 Records Result 中始终只有 1 个结果。测试是用 H2.

FooRecord foo1;
FooRecord foo2;

   final Result<?> result =
            create.insertInto( FOO)
                  .set( foo1 )
                  .set( foo2 )
                  .returningResult( FOO.ID )
                  .fetch();

我做错了什么?

查看 INSERT .. SET documentation 的示例,其中列出了对 newRecord() 的调用。您必须在记录之间放置一个标记以清楚地区分它们:

final Result<?> result =
create.insertInto( FOO)
      .set( foo1 )
      .newRecord() // This call is necessary
      .set( foo2 )
      .returningResult( FOO.ID )
      .fetch();

否则,连续的 set() 调用只会互相覆盖。