将 json 字符串从 spring 应用程序插入到 postgres jsonb

inserting json string from spring application into postgres jsonb

我想将 json 字符串插入 jsonb 数据类型的 postgres 列中,该字符串没有预定义结构,即键值格式不固定。我的应用程序使用 HikariCP 和 JPA。

早些时候,我在 postgres 中使用了以下通用转换操作来实现上述目标,但我的 DBA 不推荐这样做,因为它从根本上改变了 varchar 数据类型。

CREATE CAST (character varying AS jsonb) WITH INOUT AS IMPLICIT;

在寻找应用程序端替代方案时,我发现将字符串类型设置为未指定,如下所示

spring:   
  profiles: development   
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://127.0.0.1/mydb
    username: my_user
    password: 'my_password'
    hikari:
      auto-commit: true
      maximumPoolSize: 2
      leakDetectionThreshold: 60000
    tomcat:
      connection-properties: stringtype=unspecified

以上配置没有帮助。连接属性似乎不是数据源的直接 属性。论坛上的各种答案只是告诉你在连接属性中设置 stringtype=unspecified 但一个明确的工作答案会更有帮助。

思来想去,我意识到这个属性必须设置HikariCP。当我查看它允许我设置的各种参数时,我遇到了数据源属性。以下是我发现的解决上述问题的方法

hikari:
  data-source-properties: stringtype=unspecified