当前位置: 首页 > 知识库问答 >
问题:

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

魏硕
2023-03-14
public Integer add(MemberRecord member) {
// always returns 1
    return dslContext.insertInto(MEMBER).set(member).returning(MEMBER.ID).execute(); 
}        
 -- ID is not specified in values list
 insert into "member" ("name", ...) returning "member"."id"

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

是我在JOOQ上做错了什么,还是这是一个问题,可能已经在一些新版本中修复了?

共有1个答案

许琛
2023-03-14

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--
 类似资料:
  • 我遇到了jOOQ不插入实体的问题,除非存储库用@Transactional注释。 这是我的配置: 存储库: 因此,调用userRepository。插入(…) 实际上并没有插入到数据库中,尽管日志显示以下内容: 但是,如果我重载User道的插入方法并用@Transacational-it works注释它,实际上会插入行。我想我配置错误了一些东西。 使用带有jOOQ启动启动器的Spring Boo

  • 我试图在我的表中插入一条新记录 DSLContext类型中的方法newRecord(Table, Object)不适用于参数(String, ModelBook) 但是和这个一样:http://www.jooq.org/doc/2.5/manual/sql-execution/fetching/pojos/ 所以我不能做:

  • 我正在Spring 4应用程序中使用jOOQ 3.8.4和PostgreSQL 9.5。我有下表和类型定义 然后我尝试使用jOOQ插入,即: 然后我得到: 我做错了什么? 更新 我尝试按照Lukas的建议重命名shop.money类型(从到),但我相信问题与模式有关。请参阅更新的错误。 也许类型中的类型是一个问题!

  • 问题内容: 我想表达以下声明: 子选择返回一行,其中包含两列(和),需要将其插入到target中。这样做的原因是,是的主键。是指(外键)。 这可能吗? 问题答案: 我不确定首先使用哪种SQL方言是否可能通过,但是您当然可以使用以下方式表达这种查询: 或与jOOQ

  • 问题内容: 我正在尝试使用in 进行批量插入,这是执行操作时遇到的错误; 是由于系统空间不足还是批量插入功能本身不起作用?我的版本是,版本也是。 批量插入逻辑代码; 问题答案: 正如Val在评论中所说,您一次发送的数据可能会超出集群的处理能力。看来您可能正在尝试在 一个* 批量请求中发送 所有 文档,但对于许多文档或大型文档而言,这可能无法正常工作。 * 使用时,除了可以同时发送到集群的批量请求数

  • 目前我正在从pojos列表映射到记录,我希望能够一次插入多行。我如何在JOOQ中用一个事务做到这一点? 我曾尝试将列表放入“值”中,但出现异常“值的数量必须与字段的数量匹配”