素材牛VIP会员
mybatis 连接 postgresql 遇到问题
 贰***兄  分类:Java代码  人气:827  回帖:1  发布于6年前 收藏

先说一下下面的sql的目的: 筛选出jsonb格式的数组中包含指定字符串的记录

我使用的spring自动配置mybatis,连接的数据库是postgresql,使用如下查询:

select * from my_tab where media @> '["str"]';

上面的mediajsonb格式
能够在命令行顺利执行,但是写到我的xml里面就不行了,错误提示是jsonb@>这个操作符后面不能是一个字符串.

operator does not exist: jsonb @> character varying Hint: No operator matches the given name and argument type(s)

我又尝试了使用?操作符,mybatis却会把它当作参数的占位符

试过转义、用{1,0}替代?,都不能奏效,现在想不出解决办法了

spring boot:1.4.3
mybatis spring boot starter:1.2.0
postgresql:9.5

---更新

现在的解决办法是在传入参数前转换成postgresql里面的数组的形式,在Mapper文件里面使用$代替#. 但是这样感觉不够优雅, 有没有更好的解决办法?

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv6 码匠
tl***an CEO 6年前#1
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取