繁体   English   中英

使用 JOOQ 更新 PostgreSQL 中的 jsonb 值

[英]Update jsonb value in PostgreSQL using JOOQ

在我的 Java 项目中,我使用的是 JOOQ,我想更新 JSONB 值。 但是我的构建失败。

我写了一段代码:

DSL.using(connection).update(USER_SETTINGS)
                .set(USER_SETTINGS.SETTING_VALUE, field("{\"filtersValue\":{\"page\":0,\"size\":100}, \"visibleCount\":100}", JSONB.class))
                .where(USER_SETTINGS.USER_ID.eq(98383L))
                .execute();

在此处输入图像描述

我收到了下一条消息:

org.jooq.exception.DataAccessException: 
SQL [update "sbcm_sys"."user_settings" set "setting_value" = "filtersValue":{"page":0,"size":100, "visibleCount":100} where "sbcm_sys"."user_settings"."user_id" = ?]; ERROR: syntax err
or at or near ":"
  Position: 71
Caused by: org.postgresql.util.PSQLException: 
ERROR: syntax error at or near ":"
  Position: 71

我在哪里做错了?

当您打算使用用于绑定值DSL.val(String) DSL.field(String) ,您使用的是用于普通 SQL 模板的 DSL.field(String) 。

另请参阅此博客文章以获取更多说明: https://blog.jooq.org/whats-a-string-in-the-jooq-api/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM