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,或者一些其他问题。

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐