Jooq 更新 return 值
Jooq update return value
我尝试更新 table 中的行并在之后获得结果。
如果我这样做
dsl.update(TABLE)
.set(TABLE.ROW, newRow)
.where(TABLE.ROW_2.eq(
dsl.select(ANOTHER_TABLE.ID)
.from(ANOTHER_TABLE)
.where(ANOTHER_TABLE.GUID.eq(guid))
)).execute()
它returns 1. 但是如果我这样做
dsl.update(TABLE)
.set(TABLE.ROW, newRow)
.where(TABLE.ROW_2.eq(
dsl.select(ANOTHER_TABLE.ID)
.from(ANOTHER_TABLE)
.where(ANOTHER_TABLE.GUID.eq(guid))
)).returningResult(TABLE.ROW_3).fetchOne()
它returns 空结果。但是我想在更新后得到 TABLE.ROW_3 。有什么问题吗?
Vertica 不像 PostgreSQL 那样支持 UPDATE .. RETURNING
,如 Vertica 文档中所示:
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Statements/UPDATE.htm
UpdateReturningStep::returningResult
的 jOOQ 文档通过未在其 @Support
注释中列出 SQLDialect.VERTICA
反映了这一点:
@Support({AURORA_POSTGRES,COCKROACHDB,DB2,FIREBIRD,ORACLE,POSTGRES,SQLSERVER})
目前没有解决此问题的方法。如果你想避免使用这样的 API,你可以在你的构建中使用 jOOQ-checker
模块来在你使用 VERTICA
[= 不支持的 API 时产生编译错误20=]
我尝试更新 table 中的行并在之后获得结果。 如果我这样做
dsl.update(TABLE)
.set(TABLE.ROW, newRow)
.where(TABLE.ROW_2.eq(
dsl.select(ANOTHER_TABLE.ID)
.from(ANOTHER_TABLE)
.where(ANOTHER_TABLE.GUID.eq(guid))
)).execute()
它returns 1. 但是如果我这样做
dsl.update(TABLE)
.set(TABLE.ROW, newRow)
.where(TABLE.ROW_2.eq(
dsl.select(ANOTHER_TABLE.ID)
.from(ANOTHER_TABLE)
.where(ANOTHER_TABLE.GUID.eq(guid))
)).returningResult(TABLE.ROW_3).fetchOne()
它returns 空结果。但是我想在更新后得到 TABLE.ROW_3 。有什么问题吗?
Vertica 不像 PostgreSQL 那样支持 UPDATE .. RETURNING
,如 Vertica 文档中所示:
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Statements/UPDATE.htm
UpdateReturningStep::returningResult
的 jOOQ 文档通过未在其 @Support
注释中列出 SQLDialect.VERTICA
反映了这一点:
@Support({AURORA_POSTGRES,COCKROACHDB,DB2,FIREBIRD,ORACLE,POSTGRES,SQLSERVER})
目前没有解决此问题的方法。如果你想避免使用这样的 API,你可以在你的构建中使用 jOOQ-checker
模块来在你使用 VERTICA
[= 不支持的 API 时产生编译错误20=]