By
wz2cool
更新日期:
项目地址:https://github.com/wz2cool/mybatis-dynamic-query
文档地址:https://wz2cool.gitbooks.io/mybatis-dynamic-query-zh-cn/content/
上次我们讲过简单筛选, 这次我们举例来说明 FilterGroupDescriptor用法。
FilterGroupDescriptor 定义可以参照: FilterGroupDescriptor类
准备工作
这里我们沿用简单筛选里面的准备工作即可。
开始筛选
测试放入两个简单的Id筛选到同一个Id组筛选中去。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @Test public void testGroupFilter() throws Exception { FilterGroupDescriptor groupIdFilter = new FilterGroupDescriptor(); FilterDescriptor idFilter1 = new FilterDescriptor(FilterCondition.AND, "productID", FilterOperator.GREATER_THAN, "1"); FilterDescriptor idFilter2 = new FilterDescriptor(FilterCondition.AND, "productID", FilterOperator.LESS_THAN, "4"); groupIdFilter.addFilters(idFilter1, idFilter2); FilterDescriptor priceFilter = new FilterDescriptor(FilterCondition.AND, "price", FilterOperator.GREATER_THAN, 10);
Map<String, Object> queryParams = mybatisQueryProvider.getWhereQueryParamMap( Product.class, "whereExpression", groupIdFilter, priceFilter); northwindDao.getProductByDynamic(queryParams); }
|
结果输出看到,两个id筛选被放到同一个括号中去了。
1 2 3 4 5
| ==> Preparing: SELECT * FROM product WHERE ((product_id > ? AND product_id < ?) AND price > ?) ==> Parameters: 1(String), 4(String), 10(String) <== Columns: PRODUCT_ID, CATEGORY_ID, PRODUCT_NAME, PRICE <== Row: 3, 2, Northwind Traders Cajun Seasoning, 16.5000 <== Total: 1
|
结束
有了前面简单筛选的基础,理解这个就非常容易了,
我常常是把同属性的筛选放到一起,这样看上去的筛选条件比较清晰。
关注@我
最后大家可以关注我和 Mybatis-Dynamic-query项目 ^_^
Follow @wz2cool Star Fork