jOOQ:在更新中排除列

ps0*_*604 5 java jdbc jooq

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

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

但这不起作用,TITLE 列设置为 null。有办法让这项工作发挥作用吗?

Luk*_*der 9

像这样做:

BooksRecord rec = new BooksRecord();
rec.from(myPojo);
rec.reset(BOOKS.TITLE);
rec.update();
Run Code Online (Sandbox Code Playgroud)

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