JFinal分页与oracle的开窗函数问题

JFinal使用oracle的row_number()函数后,开窗函数的order by也被Db.paginate替换掉了,导致了查询sql语法出错。报ORA-30485: 在窗口说明中丢失 ORDER BY 表达式错误。请问下有什么解决方法么。

评论区

JFinal

2017-02-24 17:33

升级到最新版 jfinal 3.0,已经改进过对 order by 的处理

qzm

2018-04-08 09:20

我用的3.3的 没发现能解决这个问题呢

JFinal

2018-04-08 14:20

@qzm 在外层再套一个 select * from (原 sql) as temp 即可

fly_pku

2019-04-03 16:39

jfinal 3.5,最外层嵌套了一层select * from ,还是报在窗口说明中丢失 ORDER BY 表达式。。

JFinal

2019-04-03 16:46

@fly_pku 分页的各种问题在文档中有详细说明:
https://www.jfinal.com/doc/5-6

ztvip71

2020-03-18 21:51

@JFinal 使用到row_number() over (partition by xxx order by xxx) as xxx---等开窗语句时,order by会被吃掉,导致报开窗语句的语法错误,这个现在是怎么处理呢?目前好像所有版本都有这个问题吧。

ztvip71

2020-03-18 21:57

@JFinal 生成count(*)语句时,开窗语句缺失了order by,导致sql语法错误,像这样目前可以采用什么办法替代呀?

JFinal

2020-03-18 22:09

@ztvip71 文档中专门针对分页问题做了说明:
https://jfinal.com/doc/5-6

ztvip71

2020-03-19 18:39

哦哦哦,可以用paginateByFullSql()自由组合搞定,谢谢波总。

热门反馈

扫码入社