MyBatis自连接列名重复

在使用MyBatis进行自连接查询时,由于列名相同导致了列名重复的问题。为了解决这个问题,可以在SQL查询中为每个重复的列名指定别名。例如,在查询权限列表的SQL语句中,通过pId, pname等别名来区分不同的列。同时,在结果映射中也需要使用这些别名,确保属性正确绑定。这样,即使列名重复,也能正常获取和映射数据。" 85887176,8227745,Swift:使用UIButton设置动态图片,"['swift', 'iOS开发', 'UI组件']

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

Mybatis自连接列名重复,需要给每个列名取个别名
 <select id="queryPermissionList" resultMap="permissionList">
    SELECT
	  p.*,p.*,p1.id pId,p1.permission_name pname,p1.permission_pid ppid,p1.permission_url purl,p1.permission_description pdescription,p1.permission_priority ppriority
    FROM
	  permission p,
	  permission p1
    <where>
      <if test="permissionPid  != null">
        AND p.permission_pid = #{permissionPid,jdbcType=INTEGER}
      </if>
        AND p.id = p1.permission_pid
    </where>
  </select>
结果集:
  <resultMap id="permissionList" type="com.cn.bl.vo.Permission" autoMapping="true" extends="BaseResultMap">
    <collection property="children" javaType="list" ofType="com.cn.bl.vo.Permission" autoMapping="true">
      <result column="pId" property="id" jdbcType="INTEGER" />
      <result column="pname" property="permissionName" jdbcType="VARCHAR" />
      <result column="purl" property="permissionUrl" jdbcType="VARCHAR" />
      <result column="ppid" property="permissionPid" jdbcType="INTEGER" />
      <result column="pdescription" property="permissionDescription" jdbcType="VARCHAR" />
      <result column="ppriority" property="permissionPriority" jdbcType="INTEGER" />
    </collection>
  </resultMap>








                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值