当前使用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进行模板获取。
paginateByFullSql(pageNumber, pageSize, getSql(key1), getSql(key2), paras )
参数格式不匹配
paginateByFullSql(pageNumber, pageSize, getSqlPara(key1,cond).getSql(), getSqlPara(key2,cond).getSql())
SQL语句能补完,但是执行会报错。索引中丢失 IN 或 OUT 参数:: 1",
有没有什么方案可以解决这种需求。
项目:JFinal
一样的需求