我想将没有预定义结构的json字符串(即键值格式不固定)插入到数据类型为jsonb的postgres列中。我的应用程序使用HikariCP和JPA。
早些时候,我在postgres中使用了下面的泛型cast操作来实现上述功能,但DBA并不建议这样做,因为它从根本上改变了varchar数据类型。

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

在寻找应用程序端的替代方案时,我遇到了将stringtype设置为如下未指定的情况
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

10-05 23:28