我想将没有预定义结构的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