mybatis 连接 postgresql 遇到问题

先说一下下面的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文件里面使用$代替#. 但是这样感觉不够优雅, 有没有更好的解决办法?

阅读 4.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题