gpt4 book ai didi

java - 在 JOOQ 中插入 MySQL 的返回查询

转载 作者:可可西里 更新时间:2023-11-01 07:07:00 25 4
gpt4 key购买 nike

我正在尝试使用以下代码来获取自动生成的 ID。我的后端是 MySQL。代码看起来像这样

Record record = create.insertInto(CANDIDATE, CANDIDATE.FIRST_NAME,      
CANDIDATE.LAST_NAME,CANDIDATE.EXTRACTED_NAME)
.values("Charlotte", "Roche","Charlotte Roche")
.returning(CANDIDATE.ID)
.fetchOne();

System.out.println(record.getValue(CANDIDATE.ID));

我收到 NullPointerException。我看了一下 http://www.jooq.org/javadoc/latest/org/jooq/InsertReturningStep.html .它说

Derby, H2, Ingres, MySQL, SQL Server only allow for retrieving IDENTITY column values as "generated key". If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.

根据我在 Mysql 中的理解,auto_increment 用作 IDENTITY。任何人都可以阐明如何为 MySQL

实现这一点

我看过这个SO Question on a similar topic并尝试跟随

Result<?>  record =
create.insertInto(CANDIDATE, CANDIDATE.FIRST_NAME, CANDIDATE.LAST_NAME,CANDIDATE.EXTRACTED_NAME)
.values("Charlotte", "Roche","Charlotte Roche")
.returning(CANDIDATE.ID)
.fetch();

System.out.println(record.size());

虽然它在后端插入记录,但它打印 record.size() 为零

最佳答案

我知道我迟到了。但我希望我能帮助有类似问题的人,

Derby, H2, Ingres, MySQL, SQL Server only allow for retrieving IDENTITY column values as "generated key". If other fields are requested, a second statement is issued. Client code must assure transactional integrity between the two statements.

"generated key" 这句话是问题所在。您可以使用 SHOW CREATE TABLE $table_name 检查您的表 ID 是否为 AUTO_INCREMENT。我认为不是。

P/s: 我用的是MySQL

关于java - 在 JOOQ 中插入 MySQL 的返回查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com