gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:30:26 25 4
gpt4 key购买 nike

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

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

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

请注意,程度是在运行时确定的,它取决于用户输入。因此List<Field<?>>Select<?> .

可以插入到表中:

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

无法更新表格:

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

这个功能可以添加到 jOOQ 3.7 中吗?

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

最佳答案

不错,UpdateSetFirstStep 上缺少一个方法。 DSL API,接受 RowN作为第一个参数,从 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(fields()) 转换为 Row1,因为 DSL.row(fields()) 返回的内部实现类型实现了所有 Row[N] 类型。

关于sql - jOOQ - 支持任意程度的 UPDATE ... SET ... 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com