【问题标题】:jOOQ: Exclude column in updatejOOQ:在更新中排除列
【发布时间】:2020-06-27 23:42:56
【问题描述】:

在这段代码中,我更新了一个 BOOKS 行,试图不将列 TITLE 的值设置为 null,因为在 myPojo 中为 null 并且我不想覆盖它(即我试图从更新中排除该列) :

        BooksRecord rec = new BooksRecord();
        rec.from(myPojo);               
        context.update(BOOKS)
           .set(rec)
           .set(BOOKS.TITLE, BOOKS.TITLE)
           .where(BOOKS.SK.eq(sk))
           .execute();

但这不起作用,TITLE 列设置为空。有没有办法让这个工作?

【问题讨论】:

    标签: java jdbc jooq


    【解决方案1】:

    这样做:

    BooksRecord rec = new BooksRecord();
    rec.from(myPojo);
    rec.reset(BOOKS.TITLE);
    rec.update();
    

    调用Record.reset(Field) 会在任何进一步操作(例如Record.update())之前重置字段的基础Record.changed() 标志,或者当您将记录的更改值复制到Update 语句中时,就像您所做的那样。

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 1970-01-01
      • 2021-11-26
      • 2019-06-23
      • 2019-02-19
      • 2021-11-11
      • 1970-01-01
      • 2020-02-27
      • 2017-12-09
      相关资源
      最近更新 更多