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

JOOQ动态集

翟高明
2023-03-14
dslContext.update(table)
            if(field1 != null) {
              .set(field1, val1)
            }
            if(field2 != null) {
              .set(field2, val2)
            }
            .where(condition1)
            .and(condition2)
            .execute();

共有1个答案

邹阳
2023-03-14

虽然可以通过使用DSL API(ab)来实现这一点,但实际上最好的方法是使用以下方法之一:

  • updatesetstep.set(Map)
  • updatesetstep.set(记录)

使用记录的示例:

Record record = dslContext.newRecord(table);

if (field1 != null)
    record.set(field1, val1)

if (field2 != null) {
    record.set(field2, val2)

dslContext.update(table)
          .set(record)
          .where(condition1)
          .and(condition2)
          .execute();
 类似资料:
  • 我找不到关于如何动态构造with子句的留档。jOOQ中常见的表表达式/CTE)。我的用例是这样的: 我需要嵌套动态创建的列,以便从这些动态创建的列中生成新数据 例如,我正在创建一个新字段,它是完全外部联接的非空结果。此字段仅在查询执行时可用,因此我需要将其存储在WITH子句中,以便在其他查询中引用它以进行其他计算 理想情况下,我可以动态地请求WITH子句类型的查询,通过将这个连接的数据集放在它自己

  • 致: 我怎么能这么做?

  • 任何帮助都很感激! 编辑

  • 我正在使用JOOQ(JOOQ中的新手)在spring boot项目中使用Rest API在运行时创建数据库。在其中一种情况下,我需要创建一个具有复合主键的表,该主键可以是多个列的组合。我使用下面的代码创建约束- 我已经有

  • Dave使用Flyway为Alice和Bob初始化模式,因此他们都有foo table和bar函数。Dave使用jOOQ生成java api,并在运行时将开发模式映射到用户模式。戴夫以前和他的任何一个客户都没有关系,突然发现自己是鲍勃的侄子。 但是爱丽丝和鲍勃后来都回来找戴夫,让他为他们写一些自动化。因此,Dave决定创建一个机器用户Rob,他可以访问Alice和Bob的模式。他可以重用所有相同的