INSERT..RETURNING is not working in JOOQ(INSERT..RETURNING 在 JOOQ 中不起作用)
问题描述
我有一个 MariaDB 数据库,我正在尝试在我的表 users
中插入一行.它有一个生成的 id
,我想在插入后得到它.我见过 这个 但它对我不起作用:
I have a MariaDB database and I'm trying to insert a row in my table users
. It has a generated id
and I want to get it after insert. I have seen this but it's not working for me:
public Integer addNewUser(String name) {
Record record = context.insertInto(table("users"), field("name"))
.values(name)
.returning(field("id"))
.fetchOne();
return record.into(Integer.class);
}
插入了新行,但 record
始终为 null
.我没有使用 JOOQ 代码生成.
New row is inserted but record
is always null
. I'm not using JOOQ code generation.
推荐答案
这是 jOOQ 3.9 中的一个已知限制:https://github.com/jOOQ/jOOQ/issues/2943
This is a known limitation in jOOQ 3.9: https://github.com/jOOQ/jOOQ/issues/2943
在使用纯 SQL 时,您目前不能在 jOOQ 中使用 RETURNING
子句,因为 jOOQ 需要知道标识列名称才能绑定到 JDBC(在大多数数据库中).不幸的是,将 ID
列传递给 RETURNING
子句是不够的,因为不能保证这是标识列.您还可以将几列传递给 RETURNING
子句,以防 jOOQ 不知道哪一列是标识列.
You currently cannot use the RETURNING
clause in jOOQ when using plain SQL, because jOOQ needs to know the identity column name to bind to JDBC (in most databases). Unfortunately, passing the ID
column to the RETURNING
clause isn't sufficient, because there's no guarantee that this is the identity column. You might also pass several columns to the RETURNING
clause, in case of which jOOQ wouldn't know which one would be the identity column.
这篇关于INSERT..RETURNING 在 JOOQ 中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:INSERT..RETURNING 在 JOOQ 中不起作用
基础教程推荐
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 降序排序:Java Map 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01