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()
调用只会互相覆盖。
我目前正在尝试执行插入(请参阅 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()
调用只会互相覆盖。