gpt4 book ai didi

postgresql - Squeryl 中的显式 jsonb 类型转换

转载 作者:行者123 更新时间:2023-11-29 13:00:24 25 4
gpt4 key购买 nike

我正在使用带有 jsonb 数据类型的 Squeryl 0.9.5-7 和 Postgres 9.4,并想插入一些数据:

case class Log(id: String, meta: String) //meta will contain json
val logs = table[Log]
logs.insert(Log(randomId, "{\"Hi\": \"I'm a json!\"}"))

但是出现类型转换错误,提示 “列元具有 jsonb 类型,但表达式具有字符变化类型。重写表达式或转换它的类型。”

如何将我的 String 字段显式转换为 jsonb 以便原始 sql 参数看起来像 ?::jsonb

然后,有趣的是如何使用 Squeryl 编写 json 查询,例如 @>->>

最佳答案

我找到了一个更好的方法,不需要在数据库中创建 CAST。

如果您使用的是 squeryl 0.9.6,则可以在您的模式中添加一个显式转换,告诉 squeryl 将您的字符串显式转换为 jsonb。

on(logs)(s => declare(
s.meta is (dbType("jsonb").explicitCast) // enables explicit casting into jsonb
))

关于postgresql - Squeryl 中的显式 jsonb 类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32090531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com