mybatis plus 是一款优秀的 orm 框架,但在匹配 json 数据时,其默认的 like 方法可能存在误匹配的情况,特别是当需要精准匹配纯数组或对象数组时。
纯数组匹配
对于纯数组,可以使用 mysql 5.7.8 及以上版本提供的 json_contains 函数:
wrapper.and(new consumer<querywrapper<object>>() { @override public void accept(querywrapper<object> wrapper) { wrapper.last("json_contains(goods_tips_id_list, '"" + tipid + "")"); } });
对象数组匹配
对于对象数组,需要将 json 数据解析为 Java 对象数组,然后使用 in 方法进行匹配:
List<Long> idList = Arrays.asList(1615226392250040321L, 1617784249885577217L, 1617784414117744641L); wrapper.in("goods_tips_id_list", idList);
通过使用这些方法,可以精准匹配纯数组和对象数组,避免误匹配的情况。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END