时间:2022-11-14 09:33:56 | 栏目:JAVA代码 | 点击:次
mybatis-plus版本:3.3.0
oracle版本:11g
很常见的一个需求场景:某张表在前端显示时,查询条件中,往往name字段需要模糊查询,否则默认mybatis-plus是用的全字符匹配查询。如何最小限度地改造代码,实现某个字段模糊查询,其实mybatis-plus官方文档给出了答案:
通过@TableField注解地condition属性,可以配置某个字段,始终使用模糊匹配,打开condition类,去看看有哪些可选项:
一共有5个可选项,默认是采用第一个:EQUAL。
接下来改造自己的代码:
然而在数据库为oracle的情况下会报错,打印出来的SQL如下:
SELECT COUNT(1) FROM TEST_TABLE WHERE TITLE LIKE CONCAT('%', '激光', '%');
由于oracle的CONCAT函数不支持拼接2个以上的参数,因此产生了错误。因此自己定义一个注解类,@TableField注解不变,
只需要注意引入的SqlCondition类是你自己新定义的类,或者为了避免混淆,干脆你换个名字不叫SqlCondition,如下:
问题解决。
总结