记录一个使用Example的坑。
当时看到网上资料是这样写的:
//学生对象的某属性在两个值中间
studentExample.createCriteria().andXXXBetween(value1,value2);
当判断条件为单个时,这样写没有问题,但如果要依据多个条件对Student进行筛选时,就会发现Example里只有一个Criteria。导致只有第一个传入的筛选条件有效。
可以通过断点调试来验证。
因此需要这样写:
StudentExample studentExample = new StudentExample();
StudentExample.Criteria criteria = studentExample.createCriteria();
if (conditionRequest.getXXX1() != null)
criteria.andXXX1EqualTo(conditionRequest.getXXX1());
if (conditionRequest.getXXX2() != null)
criteria.andXXX2EqualTo(conditionRequest.getXXX2());
最后直接调用Mapper,把Example作为参数传入即可。