hibernate如何查询json数据

比如说我需要这样查询

select count(*) from table where json_containes(category,'toy', '$')

category是一个json类型的列,存储["toy","kids", "plastic"]这样的数据,该怎么用hibernate查询呢,还是只能用SQL查询?

阅读 4k
2 个回答

偶然在stackoverflow上找到了解答,后面要加=1
select count(*) from table where json_containes(category,'toy', '$')=1

  1. 如果数据库中的列需要做为查询条件,建议做为单独字段进行存储,而不是序列化塞到一个字段中。没法用索引,数据量大的情况下会导致查询效率低下
  2. 在mysql中,没有json类型的列,这个列的类型是varchar吧?只是说这个字段的值(字符串)符合json格式。所以如果查询只能把他看作是字符串,可以用like做模糊查询,like %\"toy\"%。hibernate的hql也好,criteria也好,都是支持like查询的
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题