做网站的要求,wordpress 小说 主题,网站自己怎么做的,wordpress可以做下载记录下#xff0c;自己新开了一个kotlin的项目从而替换java项目#xff0c;同时升级了部分组件#xff0c;包括pageHelper#xff0c;以往代码里有动态sql的配置
//通过不为null的属性查找数据
val tmpResult: ListMapString?, Any? sqlSessionTemplat…记录下自己新开了一个kotlin的项目从而替换java项目同时升级了部分组件包括pageHelper以往代码里有动态sql的配置
//通过不为null的属性查找数据
val tmpResult: ListMapString?, Any? sqlSessionTemplate?.selectList(commonSql.queryByNotNullProperties,dynamicDbOperation, RowBounds((curPage - 1) * pageSize, pageSize))然而在实际查询的时候执行了
select count(0) from table where nama key;通过sql日志查看返回count1,total1但是就是没有执行查询语句导致获取到的数据一直为空。 百度搜了后说是分页的问题将RowBounds删了后确实可以了但是这就无法动态化了某些原因。追溯源码查看问题 public Page getPage(Object parameterObject, RowBounds rowBounds) {Page page PageHelper.getLocalPage();if (page null) {//如果不是默认对象就进行分页操作我这边无论是哪个版本应该都会进入该分支if (rowBounds ! RowBounds.DEFAULT) {...} else if (parameterObject instanceof IPage || supportMethodsArguments) {...}if (page null) {return null;}PageHelper.setLocalPage(page);}...return page;}上文主要是进入的分支创建对象明白为啥有些操作在不同版本不一致下文
AbstractHelperDialect.java
5.3.3Overridepublic boolean afterCount(long count, Object parameterObject, RowBounds rowBounds) {Page page getLocalPage();page.setTotal(count);if (rowBounds instanceof PageRowBounds) {((PageRowBounds) rowBounds).setTotal(count);}//pageSize 0 的时候不执行分页查询//pageSize 0 的时候还需要执行后续查询但是不会分页if (page.getPageSizeZero() ! null) {//PageSizeZerofalsepageSize0if (!page.getPageSizeZero() page.getPageSize() 0) {return false;}//PageSizeZerotruepageSize0 返回 false只有0才需要执行后续的else if (page.getPageSizeZero() page.getPageSize() 0) {return false;}}//页码0 开始行数总行数即可不需要考虑 pageSize上面的 if 已经处理不符合要求的值了return page.getPageNum() 0 count page.getStartRow();}
----------------------------------
5.1.2public boolean afterCount(long count, Object parameterObject, RowBounds rowBounds) {Page page this.getLocalPage();page.setTotal(count);if (rowBounds instanceof PageRowBounds) {((PageRowBounds)rowBounds).setTotal(count);}if (page.getPageSize() 0) {return false;} else {return count 0L;}}从上面两个版本对比就知道了一个需要pageNum从1开始一个不care页码…踩了个小坑… 整改方法就是新增配置 offsetAsPageNumtrue //但我这里默认是true… val tmpResult: ListMapString?, Any? sqlSessionTemplate?.selectList(commonSql.queryByNotNullProperties,dynamicDbOperation, RowBounds(curPage, pageSize)) //offset参数做成pageNum且pageNum从1开始搜索许久就说了pageSize和pageNum的问题没说0和1追踪源码才知道如何修改。。。 果然啊 看源码能解决大部分问题。