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都增加,可以抽象出邏輯,用插件來實作。文檔有點少,這裡有一個示例。
org.mybatis.generator.plugins.CaseInsensitiveLikePlugin