首页 > 解决方案 > JOOQ 的插入...返回 PostgreSQL 10 和 JOOQ 3.10?

问题描述

似乎 JOOQ 的插入...返回不适用于生成的代码。

有一个类似的问题处理纯 SQL,但是我没有使用纯 SQL。

这是有问题的行:

public Integer add(MemberRecord member) {
// always returns 1
    return dslContext.insertInto(MEMBER).set(member).returning(MEMBER.ID).execute(); 
}        

成员表有一个序列号作为主键。生成的查询是正确的,如果我手动执行它,它将返回由序列生成的 id。

 -- ID is not specified in values list
 insert into "member" ("name", ...) returning "member"."id"

数据库是 PostgreSQL 10,JOOQ 版本是 3.10.8。

我是不是对 JOOQ 做错了什么,或者这是一个问题,也许已经在一些较新的版本中修复了?

标签: javasqlpostgresqljooqpostgresql-10

解决方案


execute()将返回查询插入/更新/删除的行数。您需要调用其中一种fetch()变体,例如fetchOne().

Java 文档:


推荐阅读