天天看點

MyBatis Generator (MBG) 生成類增加OR條件

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

繼續閱讀