最近因为开始一个项目,使用了scooterframework,一开始很给力,但是在做到分页的时候遇到一个问题,就是如果带有参数conditions_sql,那么这个条件将被系统忽略执行,一开始还以为自己没吃透该框架,但各种尝试后决定追踪源代码,经过两天的不懈努力,终于在JdbcPageListSource类中找到了bug。该类的原来一个方法如下:
protected List<ActiveRecord> retrieveList() {
return ActiveRecordUtil.getGateway(modelClass).findAll((String)null, (Map<String, Object>)null, inputOptions);
}
在上面的方法处理时,丢失了条件参数,后来对该方法进行改进,修改为下面的内容:
protected List<ActiveRecord> retrieveList() {
String CondionsSql="";
CondionsSql=inputOptions.get(ActiveRecordConstants.key_conditions_sql);
return ActiveRecordUtil.getGateway(modelClass).findAll((String)CondionsSql, (Map<String, Object>)null, inputOptions);
}
这样就解决了该问题。在此记下供大家参考。