欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ambiguous collection type for property ‘ ‘. You must specify ‘javaType‘ or ‘resultMap‘解决方案

程序员文章站 2022-07-15 13:09:15
...

Ambiguous collection type for property 'salesDetailList'. You must specify 'javaType' or 'resultMap'解决方案

使用mybatis做数据库查询映射,在做一对多映射时:
   <resultMap id="detailList" type="com.whu.letao_server.entity.TotalSalesDetail">
        <result column="p_name" property="name"/>
        <collection property="salesDetailList" ofType="com.whu.letao_server.entity.SalesDetail">
            <result column="s_amount" property="saleAmount"/>
            <result column="v_volume" property="volume"/>
        </collection>
    </resultMap>

出现标题中的错误。网上有很多可能可以解决的办法,对我的错误都没有任何作用,后来自己修改代码才解决,让人不禁感叹:遇到报错了别第一时间复制粘贴然后百度,自己照着报错信息改不行吗!不过这也不能怪我,因为我是第一次用mybatis,所以我的一对多映射完全照着网上写的,collection标签只按照网上一些简单实例写了poperty属性和ofType属性,所以报这个错!很简单,只要按报错提示加一个javaType就好了!至于这个属性填什么,我的一对多查询返回的属性应该是一个List,所以直接写List,即代码应该是这样的:

    <resultMap id="detailList" type="com.whu.letao_server.entity.TotalSalesDetail">
        <result column="p_name" property="name"/>
        <collection property="salesDetailList" ofType="com.whu.letao_server.entity.SalesDetail" javaType="java.util.List">
            <result column="s_amount" property="saleAmount"/>
            <result column="v_volume" property="volume"/>
        </collection>
    </resultMap>

直接解决问题。当然,如果这样解决不了,就请检查自己对应的实体类属性里有没有写setter,或者一些其他问题。