你写一个mybatis xml 一个对象包含一个集合,集合里的对象也包含一个集合的示例
时间: 2023-02-08 12:53:25 浏览: 348
这里是一个 mybatis xml 中定义了一个名为 "Parent" 的对象,其中包含一个名为 "children" 的集合,集合中的每个对象又包含一个名为 "grandchildren" 的集合的示例:
```xml
<resultMap id="parentMap" type="Parent">
<id property="id" column="parent_id" />
<result property="name" column="parent_name" />
<collection property="children" ofType="Child">
<id property="id" column="child_id" />
<result property="name" column="child_name" />
<collection property="grandchildren" ofType="Grandchild">
<id property="id" column="grandchild_id" />
<result property="name" column="grandchild_name" />
</collection>
</collection>
</resultMap>
<select id="getParent" resultMap="parentMap">
SELECT * FROM parents
LEFT JOIN children ON children.parent_id = parents.id
LEFT JOIN grandchildren ON grandchildren.child_id = children.id
WHERE parents.id = #{id}
</select>
```
在上面的代码中, 使用了一个 <resultMap> 来将查询出来的数据映射到 Parent、Child、Grandchild 这三个对象上。resultMap 中有一个 <collection> 标签,表示这个属性是一个集合。在 <collection> 标签内部可以继续定义 <collection> 标签表示集合里面包含的对象还是一个集合.
通过这个配置,就可以调用sqlSession.selectOne("getParent",id) 就能获得一个Parent 对象,包含children集合,并且每一个child对象都有grandchildren集合
阅读全文