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提供此列属性映射关系函数,例如。它可以像一个字典,我传递的属性名称然后它给我的实际列名称?
在此先感谢!