首页
学习
活动
专区
工具
TVP
发布

MyBatis Collection集合嵌套查询树形节点

MyBatis Collection集合嵌套查询树形节点

今天遇到一个需求,需要做一个文章评论的功能,大概就像下图这样

用户可以给某篇文章评论,然后其他用户可对该条评论进行评论,最终形成一个树形的结构,下面记录一下大致的实现过程,主要介绍如何从数据库中以树形结构查出所有评论信息。

我在设计库表的时候,将评论拆分为评论表和回复表,评论挂在文章下面,回复挂在评论下面。

使用的数据库为oracle数据库:

实体类:

(暂时不考虑与用户表连接的问题,所以实体类的属性暂时使用用户的id)

下面写一个方法从数据库中查出某一条评论下的所有回复

ReplyDao

ReplyMapper.xml

主要就是这个Mapper文件,在 dao 层,我们只调用 getReplyTree方法, reply_id=0代表顶级节点。然后通过 collection 节点继续调用 getNextNodeTree方法进行循环调用。

column 代表会拿父节点 id ,作为参数获取 next 对象

javaType 代表 next 对象是个列表,其实可以省略不写

ofType 用来区分 JavaBean 属性类型和集合包含的类型

select 是用来执行循环哪个 SQL

结果返回的JSON串,形成一个树形结构,回复对象的replys集合中又包含着回复信息,将这个JSON串交给前端页面遍历即可。怎么在前端展示就不是本文的重点了,不再赘述。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190127G0V0C200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券