Mybtias 发现极度尴尬的事情,实体类中嵌套一个实体类,嵌套的实体类再嵌套一个实体类数组,似乎无法用association 和 collection 依次表达,返回列会只有一个

RT.
当实体类存在这种格式

class A{ B b };
class B{ List<C> cList};

的时候,
myabtis在使用 resultMap 时,由于要顾及层级关系,第一个A中嵌套的B,则应该是使用 association 表达关系,第二个则用 collection 表达关系。
这时候神奇的事情出现了,当返回数据是多条时(其sql语句在mysql中使用返回6条)但是由于使用了 association , 其后使用的啃爹的 collection 则只返回一条数据了。
尝试解决方法: 1. 删除 association 相关项,让它自动寻找,结果系统报错,找不到 cList 这个东东,此解决宣告告破
2. 将association改为collection,但是由于第一个collection实际上时只有一个的,照样是返回了1条数据,而实际上却需要返回6条数据
贴一下相关mapper格式

<resultMap id="aMap" type="...A">
        <id property="id" column="id"/>
        <association property="b" javaType="...B">
                        ...
            <collection property="cList" ofType="...C">
                                ...
            </collection>
        </association>
    </resultMap>
  1. 由此我在尝试了多个方法之后,实在没办法只能采用偷梁换柱的方法,将cList的数据嵌套在A中,然后返回6个数据给外层的cList,然后再将外层的cList = 内层的 cList,然后外层的cList再置空
  2. 虽然通过小滑头方式解决了,但是我依旧不甘心,我这种偷梁换柱就是对仅学到的知识进行一次重复处理,在效率上肯定要差于一步处理的方法的,不知道有没有大哥能直接处理这种数据格式的形式用mybatis的相关resultMap一步到位?谢谢相关大哥了,大家也可以一起讨论,这种问题可能还有其它处理方法

1个回答

B的映射关系在B中配置就好了,不用在A中配置嵌套语句,这样只会增加代码的复杂度。

qq_37231207
qq_37231207 A的数据结构就是这样的,B和A的关联就是如此,目前就是需要用mapper一步到位,而并不是两者不存在关联,映射关系A-X-多B,很明显了吧
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

1
C++继承一个模板类,模板类中嵌套一个类模板,在派生类中使用这个类模板,编译就出错了,求指点
1
Vue-router的问题,使用路由嵌套的时候,为何子路由的内容不被渲染到router-view?
2
使用jq中怎么拿到静态网页中嵌套的<script type="text/html"></script>标签中的其他控件控件
0
关于Unity 可否嵌套其他软件的功能
1
iview 嵌套表里面的dropdownmenu显示不全
1
matlab while中嵌套if判断,if(条件符合)返回while循环中,if(条件符合)下一行该怎么写
2
tab嵌套的 table中input框为啥渲染不出来吗?
2
同一个类中,事物嵌套问题
2
matlab中for循环内嵌套if语句无法得到正确结果
1
vue element-ui table多级表头嵌套的问题
3
采用安卓苹果壳嵌套h5页面,服务器更新h5代码,有些手机还是以前的h5代码内容,怎么回事,求大神解决
7
python中,for循环通过if得到2个元素,如何获取下标最大的那个
1
iframe中嵌套的局域网地址,如何让手机网络访问?
2
oracle 函数嵌套的奇怪现象
1
python中嵌套函数引用外部循环变量时,什么时候需要使用默认值参数,而不能利用作用域?
1
boot 取配置文件里的值解析不了你里面嵌套的${url}占位符
1
嵌套Fragment,外层Fragment切换时,内层Fragment被回收,显示未空白
3
Springboot2.x + JPA,因嵌套事务导致的子方法事务不能回滚的问题?
3
iframe页面传值,子页面触发Button的click事件后,页面传的值就丢了
1
MATLAB多重for循环嵌套的提速问题