java - JOOQ动态套装

标签 java sql jooq

我只想更新已更新的字段(它们不会为空)。 我想创建一个动态集,例如(不是有效代码):

dslContext.update(table)
            if(field1 != null) {
              .set(field1, val1)
            }
            if(field2 != null) {
              .set(field2, val2)
            }
            .where(condition1)
            .and(condition2)
            .execute();

有办法吗?

最佳答案

虽然您当然可以通过(ab)使用 DSL API 来实现这一点,但实际执行此操作的最佳方法是使用以下方法之一:

一个使用Record的例子:

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();

关于java - JOOQ动态套装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923028/

相关文章:

java - 动态设置 EditTextPreference 标题

SQL 大小写表达式语法?

java - 在数据库中存储 jXDatePicker1 日期值时出错

c# - Entity Framework ——底层SQL语句

mysql - 什么是 Jooq 事务隔离级别?脏读会发生吗?

java - 将可变对象转换为不可变对象(immutable对象)

java - 如何向 JRadioButton 标签添加 Action 监听器?

java接口(interface)继承冲突方法

java - 使用 Jooq 插入查询是否可能?

postgresql - Jooq 中的条件 onDuplicateKeyUpdate