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

jOOQ-支持UPDATE... SET...任意程度的查询

耿联
2023-03-14

我有两个函数:一个返回字段列表,另一个返回选择查询(选择字段的相应值)。

private List<Field<?>> fields() {
    ....
}

private Select<?> select() {
    ...
}

注意,度是在运行时确定的,它取决于用户输入。因此<代码>列表

可以在表格中插入:

context.insertInto(table, fields()).select(select()))

无法更新表格:

context.update(table).set(DSL.row(fields()), select())

此功能能否添加到jOOQ 3.7中?

我们现在可以使用哪种解决方法?

共有1个答案

漆雕嘉茂
2023-03-14

很好的捕捉,在DSL API上有一个缺少的方法,它接受从DSL.row(Collection)返回的类型作为第一个参数。对于jOOQ 3.7,这应该是固定的:https://github.com/jOOQ/jOOQ/issues/4475

作为一种变通方法,如果你能忍受黑客的罪恶感,你可以选择原始类型:

context.update(table).set((Row1) DSL.row(fields()), (Select) select())

您可以将DSL. row(字段())转换为Row1,因为DSL. row(字段())返回的内部实现类型实现了所有Row[N]类型。

 类似资料:
  • 问题内容: jOOQ是否结合PostgreSQL提供对JSR310的支持?特别是,我尝试使用以下类: 我正在存储以下数据类型(根据http://www.postgresql.org/docs/9.1/static/datatype- datetime.html ): : : : : 这些数据类型正确吗? jOOQ是否支持,和之间以及上述四个类之间的转换(双向)? 问题答案: jOOQ路线图 直到j

  • jOOQ是否结合PostgreSQL为JSR310提供支持?特别是,我尝试使用以下类:

  • 我不能使用jOOQ生成器为MySQL生成类,但在PostgreSQL中是逆的 我在代码生成配置文件中包含了“dual”: 我正在使用jOOQ的最新版本:2.4.0。可能有什么问题?

  • 当我使用以下HQL时,我得到了DML操作不支持的错误

  • 我对JOOQ产品与AWS RDS Aurora MySQL的兼容性有点困惑。 也许这纯粹是一项牌照限制,而非技术限制。 本页https://www.jooq.org/legal/licensing#databases在专业版中显示RDS Aurora支持 我的问题是: 有谁能确认这实际上是一个许可证使用条款限制,而不是开源代码的技术限制,例如,当使用专业版时,并不是一个实际会运行不同风格的JOOQ

  • 目前,我已经使用spring boot hikari连接池编写了我的项目,并使用fetchAsync方法获取结果。但根据这篇文档,反应式抓取阻止了JDBC API。 有没有可能用flux封装fetchAsync方法的CompletionStage对象并使其成为反应性的? 是否有通过连接池支持r2dbc的计划,以及时间表(如果正在进行)