mybatis一对多关系用oracle实现分页时的问题

dmsdus 2016-10-08 05:24:15
有 回复表,二级回复表(像贴吧里的楼中楼回复)。

在主贴页面里,把回复+二级回复一起分页显示。大概是这种形式:
回复1
-二级回复1
-二级回复2
回复2
回复3

回复类里面有二级回复集合,oracle存储过程里实现分页查询时,先回复 left join 二级回复,再用rownum分页。

但是界面上显示的时候,因为我先把一级回复显示出来后,再遍历显示该一级回复对象里的二级回复集合,所以第二页开始会再显示一级回复的内容,就会超出原本设置的每页行数值。

想问这种要怎么解决? 还是说表设计的不对,应该只用一张回复表?
...全文
341 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmsdus 2016-10-09
  • 打赏
  • 举报
回复
补充: 行数是指回复+二级回复的数量。所以如果按我这么写sql的话,一级跟他的第一个二级回复会变成一条数据,而实际上要求是把他们分成两行。并且第二页的话,如果回复3有二级回复,会把回复3也给显示出来,就会变成6行: 回复3 --二级回复3 回复4 回复5 回复6 回复7 想要的效果是去掉回复3的: --二级回复3 回复4 回复5 回复6 回复7
sqltoy-orm是比hibernate+myBatis更加贴合项目的orm框架,具有hibernate增删改的便捷性同也具有比myBatis更加灵活优雅的自定义sql查询功能。 sqltoy-orm支持以下数据库: oracleoracle11g到19c db2 9.5+,建议从10.5 开始 mysql 支持5.6、5.7、8.0 版本 postgresql 支持9.5 以及以上版本 sqlserver 支持2008到2019版本,建议使用2012或以上版本 sqlite sybase_iq 支持15.4以上版本,建议使用16版本 elasticsearch 只支持查询,版本支持5.7+版本,建议使用7.3以上版本 clickhouse mongodb (只支持查询) sqltoy-orm特性: 1、根本上杜绝了sql注入问题,sql支持写注释、sql文件动态更新检测,开发sql变更会自动重载。 2、最直观的sql编写模式,当查询条件稍微复杂一点的候就会体现价值,后期变更维护的候尤为凸显。 3、极为强大的缓存翻译查询:巧妙的结合缓存减少查询语句表关联,极大简化sql和提升性能。 4、最强大的分页查询:很多人第一次了解到何为快速分页分页优化这种极为巧妙的处理,还有在count语句上的极度优化。 5、跨数据库函数方言替换,如:isnull/ifnull/nvl、substr/substring 等不同数据库。 sqltoy-orm特点: 1、最优雅直观的sql编写模式 2、天然防止sql注入,执行过程 3、最强大的分页查询 4、最巧妙的缓存应用,将多表关联查询尽量变成单表 5、跨数据库 6、提供行列转换(数据旋转),避免写复杂的sql或存储过程,用算法来化解对sql的高要求,同实现数据库无关(不管是mysql还是sqlserver) 7、提供分组汇总求平均算法(用算法代替sql避免跨数据库语法不一致) 8、分库分表 9、五种非数据库相关主键生成策略 10、elastic原生查询支持 11、elasticsearch-sql 插件模式sql模式支持     sqltoy-orm框架系统 更新日志: v4.18.22 1、在findEntity中EntityQuery可以设置fetchSize 2、在sqltoyContext中可以全局设置fetchSize,例如 spring.sqltoy.fetchSize=200 3、convertType 支持空集合返回空集合 4、针对一些特殊原因导致表名是数据库关键词的处理支持

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧