1
列屬性的映射關係,我需要做的MyBatis的一些動態SQL映射,爲了讓這對每列做類似如下:獲取的MyBatis
switch (filter.FilterType)
{
case FilterType.BeginsWith:
operatorStr = "UPPER({0}) LIKE '{1}%' ";
value = filter.Value.ToUpper();
break;
case FilterType.Contains:
operatorStr = "UPPER({0}) LIKE '%{1}%' ";
value = filter.Value.ToUpper();
break;
case FilterType.GreaterThan:
operatorStr = " {0} > {1} ";
break;
case FilterType.GreaterThanOrEqual:
operatorStr = " {0} >= {1} ";
break;
case FilterType.LessThan:
operatorStr = " {0} < {1} ";
break;
case FilterType.LessThanOrEqual:
operatorStr = " {0} <= {1} ";
break;
}
我之所以需要有一個過濾器是這樣的,我有一個網頁,它顯示一個表格的數據爲網格,每列可搜索/排序。我不想爲每列編寫if-else子句,因此試圖查看Mybatis中的列屬性映射是否有助於此工作。
我想有一種方法讓Mybatis知道哪一列我希望它指向在過濾器中有效。我知道我可以使用簡單的動態方式實現這一點,通過動態地在我自己的自定義代碼中找出我要過濾的實際列。但我不想在編程源代碼中混合實際的表列名稱。我認爲這樣做更明智的做法是將類屬性名稱傳遞給Mybatis的API,然後讓它找出映射到該類的屬性名稱的實際列傳入。
任何人都有想法如何做到這一點? Mybatis中是否有API提供此列屬性映射關係函數,例如。它可以像一個字典,我傳遞的屬性名稱然後它給我的實際列名稱?
在此先感謝!