Java Mybatis 如何动态条件查询 JSON数据类型值?

如在数据库中有一张表 dress(服装),它有一个专门用来存特殊属性的字段:json_data ,字段类型是JSON格式的. 存放的JSON格式多为:

{

color:'',

type:'',

size:'',

}

如果我要在后端查出 json_data 字段中 color 包含 red 的数据怎么办呢?
目前已知数据库的查询语法是:

select * from dress where json_data->'$.color' like '%red%'

那我在Java中如何配合 Mybatis-plus实现呢,以及如果查询的条件是动态的(假如前端传 size),怎么办呢?


回答:

据我所知,Mybatis-plus现在并没有很好的支持这种查询方式。

但是反向思考一下。
存特殊属性的字段:json_data 这个的合理性?

一般来说是,冗余数据、不易修改、一个整体的。尤其是不会单独去查询的场景。而且这样也不好建索引吧。

MySQL毕竟是一个关系型数据库。你这样使用的话,可以考虑MongoDB;或者将里面需要作为查询的字段提取出来;


回答:

字段转实体类



回答:

不建议这么设计数据库,用不到索引的。
如果是遗留项目,也建议花点时间重构下。

以上是 Java Mybatis 如何动态条件查询 JSON数据类型值? 的全部内容, 来源链接: utcz.com/p/944866.html

回到顶部