作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用带有 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/
我是一名优秀的程序员,十分优秀!