JOOQ 的插入...返回 PostgreSQL 10 和 JOOQ 3.10?

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


有一个处理普通 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 上做错了什么还是这是一个问题,也许在一些较新的版本中已经修复了?


慕标5832272
浏览 201回答 1
1回答

繁华开满天机

execute()将返回查询插入/更新/删除的行数。您需要调用其中一种fetch()变体,例如fetchOne().Javadoc:https://www.jooq.org/javadoc/latest/org/jooq/Query.html#execute--https://www.jooq.org/javadoc/latest/org/jooq/InsertResultStep.html#fetchOne--
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java