java - Jooq 更新返回值
问题描述
我尝试更新表中的行并获得结果。如果我做
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()
它返回 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()
它返回空结果。但我想在更新后获得 TABLE.ROW_3 。有什么问题?
解决方案
VerticaUPDATE .. RETURNING
不像 PostgreSQL 那样支持,可以在 Vertica 文档中看到:
https ://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Statements/UPDATE.htm
的 jOOQ 文档通过未在其注释中UpdateReturningStep::returningResult
列出来反映这一点:SQLDialect.VERTICA
@Support
@Support({AURORA_POSTGRES,COCKROACHDB,DB2,FIREBIRD,ORACLE,POSTGRES,SQLSERVER})
目前没有解决方法。如果你想避免使用这样的 API,你可以jOOQ-checker
在你的构建中使用模块来产生编译错误,只要你使用不支持的 APIVERTICA
推荐阅读
- django - Django:在 UpdateView 中覆盖 get_queryset()
- r - R 使用 dplyr 根据列中的最大值对数据帧进行变异
- python - 尝试添加所有值
- ruby-on-rails - Turbolinks 5.2.0 渲染组件两次 => 很好理解完整的事件列表并修复了该效果
- c# - z 顺序更改时的 Winform 控件事件
- python - Tensorflow 二值图像分类的概率
- python - 未找到 SWIG 生成的 python 文件
- java - 无法自动检测 kubelet URL:datadog_checks.base.errors.CheckException
- excel - 按列名重命名列并与其他工作表合并
- java - 如何使 RTL 背景 android