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