分页的查询方法传入参数dto实现了IPage接口
IPage queryPage(TestSearchDTO dto);
得到的结果是一个TestSearchDTO对象。
代码位于MybatisMapperMethod 的 executeForIPage
private Object executeForIPage(SqlSession sqlSession, Object[] args) {
//这里能否给个扩展功能,有时候查询的结果不想包含参数信息,如果可以得到一个new对象可能更好呢
IPage result = null;
for (Object arg : args) {
if (arg instanceof IPage) {
result = (IPage) arg;
break;
}
}
Assert.notNull(result, "can't found IPage for args!");
Object param = method.convertArgsToSqlCommandParam(args);
List list = sqlSession.selectList(command.getName(), param);
result.setRecords(list);
return result;
}
Comment From: miemieYaho
正是因为basemapper#page的入参和返回是同一个对象才能现在这样,否则就只能返回list,你要返回其他的就自己写个util改写返回类
Comment From: FeiLong2014
正是因为basemapper#page的入参和返回是同一个对象才能现在这样,否则就只能返回list,你要返回其他的就自己写个util改写返回类
这个return前面给个convert能行吗 我们有开发人员直接返回了 很有可能泄露一些关键信息 转换是可以转换 但是没办法天天看他们代码呀
Comment From: miemieYaho
你自己的特殊需求自己convert啊比如return XxUtil.convert(Ipage page)