MyBatis中达到where a and (b or c)形式

MyBatis的example没有and方法,如果我们要达到where a and (b or c)的功能,我们可以通过一个变换来完成。
首先我们来因式分解,a and (b or c) = (a and b) or (a and c)
这样我们就可以用example的or()方法了。

OrderExample example = new OrderExample();
Criteria criteria = example.createCriteria();
Criteria criteria1 = example.createCriteria();
criteria.andAEquals(a);
criteria1.andAEquals(a);
criteria.andAEquals(b);
criteria1.andAEquals(c);
example.or(criteria1);

你可能感兴趣的:(mybatis)