springboot入门:mybatis关于二级列表(评论),返回数据异常

这篇博客讲述了在SpringBoot中使用MyBatis时遇到的二级评论数据返回错误的问题。由于父评论表(comment)和子评论表(comment_child)在id和content字段上存在冲突,导致查询结果混乱。为解决此问题,作者提出了两种解决方案:1) 对子评论表的id和content字段设置别名为child_id和child_content;2) 在查询时利用别名进行查询,以确保正确获取和展示子评论信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

父评论(表名:comment)和子评论(表名:comment_child)分别用到两张表,但是因为建表设置的两个表的id(回复id)和content(回复文本),导致查询出来的列表,子评论是父评论的数据

 

这就需要更改别名了。

1.子评论的表 id,content分别在column设置别名child_id,child_content 

  <!--   !!! !特别注意,因为二级评论id,content和一级评论id,content一样,所以要改数据库别名(column)为child_id,child_content     -->
        <collection property="commentChild" ofType="com.fgh.spring.generator.CommentChild">
            <id column="child_id" jdbcType="INTEGER" property="id"/>
            <result column="p_id" jdbcType="INTEGER" property="pId"/>
            <result column="child_content" jdbcType="VARCHAR" property="content"/>

        </collection>

2.查询的时候通过别名去查

   <!--  返回子评论 注意,因为两个表的id,content一样,所以要修改别名请看清下面的区别,否则导致返回的子评论是父评论-->
    <sql id="Child_Column_List">
           comment.id , comment.content ,
           comment_child.id  child_id,
           comment_child.content  child_content
  </sql>
    <select id="selectByOidAndType" parameterType="map" resultMap="BaseResultMap">
        select
        <include refid="Child_Column_List"/>
        from comment
        left join comment_child
        on comment.id = comment_child.p_id
    </select>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值