【发布时间】:2020-01-21 08:18:48
【问题描述】:
我正在使用 jOOQ 的 insertInto() 和 onDuplicateKeyUpdate() 方法将一些数据更新到 Postgres 表中。我以后想知道我的数据中有多少重复项,因此如果一行被插入或更新,则需要返回。
到目前为止,从我的 postgres 特定的research 来看,我发现RETURNING (not MY_TABLE.xmax = 0) AS updated 是一个有效的选项。但是,jOOQ 自动生成的 Java 表类似乎无法让我访问 postgres 的系统列,例如 xmax。
这是我目前的查询:
dsl.insertInto(MY_TABLE)
.columns(
// pkey columns
MY_TABLE.SHIFT,
MY_TABLE.DATE_UTC,
MY_TABLE.TIME_UTC,
MY_TABLE.DURATION,
)
.values(
shiftId,
utcDateId,
utcTime,
duration
)
.onDuplicateKeyUpdate()
.set(MY_TABLE.DURATION, newDuration)
.returning((MY_TABLE.xmax = 0).`às`("inserted"))
.execute()
这会导致以下编译时错误:
错误:Kotlin:未解析的引用:XMAX
我已经重新检查了我的 Maven jOOQ 表生成配置,并且我没有排除任何列。我还通读了在 jOOQ 自己的网站上可以找到的所有内容,但没有找到针对此特定用例的有用信息。
关于我可以在这里做什么的任何提示?
【问题讨论】:
标签: postgresql spring-boot kotlin jooq