jOOQ:排除更新中的列

jOOQ: Exclude column in update

在此代码中,我更新了 BOOKS 行,尝试不将列 TITLE 的值设置为空,因为在 myPojo 中为空,我不想覆盖它(即我试图排除该列来自更新):

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

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

这样做:

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

调用 Record.reset(Field) resets the field's underlying Record.changed() flag prior to any further action, such as Record.update(),或者像您一样将记录的更改值复制到 Update 语句中。