resultMap中id和result、collection和association有什么不同?
<resultMap id="rmGoodDetail" type="com.imooc.mybatis.entity.GoodDetail"> <id property="gdId" column="gd_id"/> <result property="goodsId" column="goods_id"/> <association property="goods" column="goods_id" select="goods.selectById"/> </resultMap>
我自己试验的时候,发现<id>和<result>标签是可以混用的。
属性 映射 普通字段 也能用<id>标签。
属性 映射 主键字段 也能用<result>标签。
同理,collection和association也是可以混用的,返回的结果都是一样的。
既然返回结果一样,为什么还要区分id和result、collection和association?
他们有什么不同?
正在回答
同学你好,这些标签在实际功能上还是有一些区别的,比如:
1、id:该封装规则的唯一标识,作为唯一标识,可以在使用缓存后,将这个唯一标识来作为区分的内容,但是如果将所有字段都标识为id,此时是会出现混乱的情况的。
2、如果实体类中是属性是集合set或者list ,这时需要用collection,这样也便于集合属性的赋值。
现阶段先了解这些内容,并遵循这个规则就可以。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学你好,1、<resultMap>是Maybatis的结果集封装,id:该封装规则的唯一标识,也就是说id用来标识哪个字段是主键。 而result是非主键的映射,这是resultMap中的语法规则,我们需要遵循这个语法规范,便于别人对代码的可读性。
2、一般情况下参考如下来理解:
collection和association都是 为关联关系,collection 是实现一对多的关系, association是实现一对一的关系。
collection:在进行一对多查询时,需要使用collection标签来关联多的一边,而association则是实现一对一的关联查询,通过外键(指定参数)完成查询,并将查询结果封装到指定的类型中。
如上所示,在resultMap标签中,需要遵循这样语法规范。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星