3.2K Star 8.8K Fork 3.6K

GVPJFinal / JFinal

 / 详情

jfinal 分页查询问题

已完成
创建于  
2016-04-16 11:59

波哥
我现在查询想实现,指定的file_no 一直排在第一个。
数据库是mysql, 在mysql客户端工具中, 下面sql可以正确执行

select * from cmbc_upload_file order by (case when file_no='handbrush' then 1 else 2 end),id desc

但是在jfinal 2.0 执行会报错,大概浏览了下代码, 猜测是分析sql如果时候,这种情况没有处理

评论 (5)

可能是 jfinal 的 order by 正则不能正常清掉你的 order by 语句,建议用 Db.query(select count(*) ....) 得到总记录数,然后再使用 paginate 得到列表,先手动处理一下此分页。未来的jfinal新版本会处理这种情况

@JFinal 查看代码, 确实是, order by 正则处理问题, 暂时采用继承 com.jfinal.plugin.activerecord.dialect.MysqlDialect

重写 replaceOrderBy ,能解决问题

@name327 能想到通过继承 MySqlDialect 并覆盖掉 replaceOrderBy 来解决,非常机智哈。建议把解决后的正则分享出来,以便更多人可以用上,感谢反馈

代码贴上来吧?我们也参考一下

状态更改为 已关闭

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
840 jfinal 1580661334
Java
1
https://gitee.com/jfinal/jfinal.git
git@gitee.com:jfinal/jfinal.git
jfinal
jfinal
JFinal

搜索帮助

344bd9b3 5694891 D2dac590 5694891