order by when then翻页异常

原SQL:

select * from SJ where 1=1  order by case when ????????????

替换后

select count(*) from SJ where 1=1   when ????????????

评论区

JFinal

2016-06-07 18:28

paginate 方法在计算总页数的时候会将 order by 子句部分去掉,因为orderby 对于 select count(*) 是不需要的,而目前移除所用的正则没有考虑到 order by case when 这种模式,已做备份,jfinal 2.3 将会改进这里,感谢反馈

tj342594200

2016-06-08 09:42

是不是也可以重载paginate方法,开放分页的 select count(*) 语句让用户自己填

tj342594200

2016-06-08 09:42

@JFinal 是不是也可以重载paginate方法,开放分页的 select count(*) 语句让用户自己填

JFinal

2016-06-08 09:48

@tj342594200 在用户自己的 Model 中可以覆盖掉 paginate 方法,不过更加建议通过继承 Dialect的方式重写相关方法,然后通过 arp.setDialect(new MyDialect()) 来彻底解决这个问题。
还有一种方式是,通过覆盖掉 isTakeOverPaginate 方法,让其返回return true,然在 takeOverpaginate 方法中彻底接管分页

热门反馈

扫码入社