resultMap的用法

1.配置多个一对一(association)的时候,默认执行第一个一对一。
2.resultMap中不可以有多个association,多对多关系可以修改表结构,配置成2个一对多的表来实现,
添加一个中间表,这样的话就可以通过collection标签来配置了
3.resultMap中只有一个collection,或者一个association.
sql语句和一对一类似,
一对一:

    <!-- association :配置一对一属性 -->
    <!-- property:moments里面的User属性名 -->
   	<!-- javaType:属性类型 -->
    <!-- property:实体类属性名 -->
    <!-- column:数据库列名 -->
    <select id="getMoments" resultMap="momentsMap" parameterType="moments">
    SELECT m.*,c.id cid,c.content ctent,c.momentId cmid, u.userName FROM moments m
    JOIN `comment` c on c.momentId=m.id
    JOIN `user` u on m.userId=u.userId
    <where>
            <if test="userId!=null">
               m.userId=#{userId}
            </if>
    </where>
    </select>
	    <resultMap id="momentsMap" type="moments">
	        <id property="id" column="id" />
	        <result property="userId" column="userId" />
	        <result property="content" column="content" />
	        <result property="images" column="images" />
	        <result property="creatTime" column="creatTime" />
	        <association property="user" javaType="user">
	            <!-- id:声明主键,表示userid是关联查询对象的唯一标识-->
	            <id property="userId" column="userId" />
	            <result property="userName" column="userName" />
	        </association>
	         <!-- 配置一对多的关系
     property:填写pojo类中集合类类属性的名称(private List<Comment> comment;)
    javaType:填写集合类型的名称
    -->
    <collection property="comment" javaType="list" ofType="Comment">
        <!-- id:声明主键,表示id是关联查询对象的唯一标识-->
        <id property="id" column="cid" />
        <result property="content" column="ctent" />
        <result property="masterId" column="masterId" />
        <result property="respondentId" column="respondentId"/>
        <result property="momentId" column="cmid" />
    </collection>
 </resultMap>

*实体类必须要有get,set,和构造函数
*select查询时取的别名一定要记得放在column的值中
*有相同属性名时必须取别名
*list中的对象要有数据就必须查询相关属性
若获得的结果:{“comment”:{},“content”:“难过的一天”,“creatTime”:1561478400000,“id”:2,“images”:“无图”,“user”:{“userId”:130,“userName”:“hsd”},“userId”:130}
不是映射问题就是实体类没有完整的get,set,构造函数
{“comment”:[{“content”:“明天会更好”,“id”:2,“momentId”:2}],“content”:“难过的一天”,“creatTime”:1561478400000,“id”:2,“images”:“无图”,“user”:{“userId”:130,“userName”:“hsd”},“userId”:130}
引以为戒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值