MyBatis Generator (MBG) 生成类增加OR条件
问题:在mybatis中想实现一个查询,如下:
SELECT first_field, second_filed, third_field
WHERE first_filed > 1 AND (second_field > 0 ORthird_field < 0)
使用example类么有对应的方法,比较麻烦。
先提供两种思路,供参考。
1、继承生成的Example类
生成的example类包括一个内嵌的内部类,其已经实现了所有字段的常用过滤条件,内部类的名称总是GeneratedCriteria。
MBG也生成一个内部类,命名Criteria,继承GeneratedCriteria,这里可以给example类增加你自己的功能。
所以基于生成的example类,增加如下自定义条件的代码:
public Criteria multiColumnOrClause(String value1, String value2) {
addCriterion("value1 = " + value1 + " OR value2 = " + value2);
return this;
}
2、开发插件
如果你经常重用,不想给所有mappers都增加,可以抽象出逻辑,用插件来实现。文档有点少,这里有一个示例。