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