java - jOOQ:在更新中排除列

标签 java jdbc jooq

在此代码中,我更新了 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 列设置为 null。有办法让它工作吗?

最佳答案

这样做:

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

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

关于java - jOOQ:在更新中排除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60713131/

相关文章:

java - 动画听众,听谁的?

java - SpringAmqp 拦截器中的处理程序方法名称

java - JOOQ:获取带有字符串的表和列?

json - 如何在 jOOQ 的 WHERE 条件下使用 Postgres JSON 运算符?

java - String.length() 和 string.toCharArray().length 的速度/效率权衡

java - 无法连接mysql服务器连接

java - 嵌套异常是 java.sql.SQLException : Invalid column name ORACLE

java - JDBC 抛出 MySQL 语法异常,尽管查询有效

java - 环境变量中的数据库名称

java - 查找满足条件的字符串的子串数