paginateByFullSql+SQL模板的用法

当前使用JFinal版本:5.0.8

说明:

因需要处理相对复杂的SQL查询语句(动态列,动态筛选条件等)且SQL语句比较长,其中涉及到对row_number() over(partition by xx order by xxx)的运用,sql语句定义在SQL模板文件中。使用Kv进行模板替换参数封装。

使用原生的template(sqkKey,paras).paginate(pageNumber, pageSize)会导致order by 丢失。

查看文档后使用paginateByFullSql()进行处理。

paginateByFullSql(int pageNumber, int pageSize, String totalRowSql, String findSql, Object... paras)

但该函数貌似只支持?占位符的参数填充。

结果:

其中totalRowSql与findSql进行模板获取。

  1. paginateByFullSql(pageNumber, pageSize, getSql(key1), getSql(key2), paras

    参数格式不匹配

  2. paginateByFullSql(pageNumber, pageSize, getSqlPara(key1,cond).getSql()getSqlPara(key2,cond).getSql()

    SQL语句能补完,但是执行会报错。索引中丢失  IN 或 OUT 参数:: 1",


有没有什么方案可以解决这种需求。


评论区

杜福忠

2023-03-30 18:46

https://jfinal.com/share/2533
一样的需求

azzcsimp

2023-04-02 14:13

@杜福忠 膜拜大佬,完美解决问题。

热门反馈

扫码入社