Error creating bean with name 'sqlSessionFactory' defined in class path resource 的一次报错

本文深入解析了在使用SSM框架进行MyBatis多对一关联映射时出现的错误,特别是针对mapper.xml文件中重复使用property属性导致的问题。通过对具体代码的分析,指出了解决此类问题的方法,帮助开发者避免类似错误。

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

SSM,报错原因是因为以下mapper.xml的代码

<resultMap id="appSingleDetail" type="com.ybq.pojo.AppInfo" extends="base">
        <result property="appInfo" column="app_info"/>
        <result column="creation_date" property="creationDate"/>
        <result column="interface_language" property="interfaceLanguage"/>
        <result column="logo_loc_path" property="logoLocPath"/>
        <result column="logo_pic_path" property="logoPicPath"/>
        <result column="off_sale_date" property="offSaleDate"/>
        <result column="on_sale_date" property="onSaleDate"/>
        <result column="support_rom" property="supportROM"/>
        <result column="update_date" property="updateDate"/>

        <association property="categoryLevel1" javaType="com.ybq.pojo.AppCategory">
            <id property="id" column="level1Id"/>
            <result column="level1Name" property="categoryName"/>
        </association>
        <association property="categoryLevel2" javaType="com.ybq.pojo.AppCategory">
            <id property="id" column="level2Id"/>
            <result column="level2Name" property="categoryName"/>
        </association>
      <association property="categoryLevel3" javaType="com.ybq.pojo.AppCategory">
            <id property="id" column="level3Id"/>
            <result column="level3Name" property="categoryName"/>
        </association>

        <association property="appStatus" javaType="com.ybq.pojo.DataDictionary">
            <result column="value_id" property="valueId"/>
            <result column="value_name" property="valueName"/>
        </association>

        <!--最新版本封装-->
        <association property="newAppVersion" javaType="com.ybq.pojo.AppVersion">
            <id column="versionId" property="id"/>
            <result property="versionNo" column="version_no"/>
        </association>

        <!--创建者-->
        <association property="createUser" javaType="com.ybq.pojo.DevUser">
            <id property="id" column="createId"/>
            <result column="createName" property="devName"/>
        </association>
        <!--修改者-->
        <association property="modifyUser" javaType="com.ybq.pojo.DevUser">
            <id property="id" column="modifyId"/>
            <result column="createName" property="devName"/>
        </association>
        <!--开发者-->
        <association property="createUser" javaType="com.ybq.pojo.DevUser">
            <id property="id" column="devId"/>
            <result column="modifyName" property="devName"/>
        </association>

    </resultMap>


<select id="queryById" resultMap="appSingleDetail">

      select t1.id as appInfoId,t1.app_info,t1.apk_name,t1.creation_date,t1.downloads,t1.interface_language,
      t1.logo_loc_path,t1.logo_pic_path,t1.logo_loc_path,t1.on_sale_date,
      t1.software_name,t1.software_size,t1.support_rom,t1.update_date,
      c1.id as level1One,c2.id level2Id,c3.id level3Id,
      c1.category_name level1Name,c2.category_name level2Name,c3.creation_time level3Name,
      d1.value_id,d1.value_name,
      v1.id versionId,v1.version_no,
      u1.id createId,u1.dev_name createName,
      u2.id modifyId,u2.dev_name modifyName,
      u3.id devId,u3.dev_name devName
        from app_info t1 left join app_category c1 on t1.category_level1 = c1.id
        left join app_category c2 on t1.category_level2 = c2.id
        left join app_category c3 on t1.category_level3 = c3.id
        left join data_dictionary d1 on t1.status = d1.value_id
        left join app_version v1 on t1.version_id = v1.version_no
      left join dev_user u1 on t1.created_by = u1.id
      left join dev_user u2 on t1.modify_by = u1.id
      left join dev_user u3 on t1.dev_id = u1.id
        where
         d1.type_code = 'APP_STATUS'
         AND
        id = #{id}
    </select>

原因是因为在resultMap里面,封装两个property=“createUser”

 

        <!--创建者-->
        <association property="createUser" javaType="com.ybq.pojo.DevUser">
            <id property="id" column="createId"/>
            <result column="createName" property="devName"/>
        </association>
        <!--修改者-->
        <association property="modifyUser" javaType="com.ybq.pojo.DevUser">
            <id property="id" column="modifyId"/>
            <result column="createName" property="devName"/>
        </association>
        <!--开发者-->
        <association property="createUser" javaType="com.ybq.pojo.DevUser">
            <id property="id" column="devId"/>
            <result column="modifyName" property="devName"/>
        </association>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值