Mybatis-collection错误去重问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baichoufei90/article/details/88964822

Mybatis-collection错误去重问题

系列文章目录

  1. Mybatis-原理
  2. Mybatis-缓存
  3. Mybatis-mapper文件中$与#的区别
  4. Mybatis-和Hibernate对比
  5. Mybatis-collection错误去重问题
  6. Mybatis-好文推荐

摘要

在使用mybatis时,集合标签<collection>是十分重要的,可以帮我们实现聚合功能。但是有个问题就是会对聚合到的数据进行自动去重,但我们有时候不想去重,本文说下我的解决方法。

0x01 搜搜搜

百度谷歌都搜了,一些人说将聚合字段写到column里,如下:

<collection property="uidlist" javaType="ArrayList" ofType="String" column="uid">
</collection>

但从运行结果来看,并不生效。

后来看到,stackoverflow一个老哥说了,mybatis collection设计的原则就是去重聚合,难道就没办法解决了吗?

0x02 换思路-对象聚合

将聚合目标字段+主键id字段封装为一个对象UID。如下:

<collection property="uidList" javaType="ArrayList" ofType="com.chengc.test.po.UID">
    <id property="id" column="id"/>
    <result property="uid" column="uid"/>
</collection>

然后改动下mapper文件,在service层里去对该对象按需求进行拆解即可。

展开阅读全文

没有更多推荐了,返回首页