【Java Web开发指南】Mybatis一对多关联映射
原创
©著作权归作者所有:来自51CTO博客作者李响Superb的原创作品,请联系作者获取转载授权,否则将追究法律责任
1 嵌套查询
<select id="findUserWithOrders2" parameterType="Integer"
resultMap="UserWithOrdersResult2">
SELECT * from t_customer where id=
</select>
<resultMap type="Customer" id="UserWithOrdersResult2">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="jobs" column="jobs"/>
<result property="phone" column="phone"/>
<!-- 一对多关联映射:collection
ofType表示属性集合中元素的类型,List<Orders>属性即Orders类 -->
<collection property="ordersList" ofType="Orders" column="id" select="top.lixiang007.mapper.OrdersMapper.findorderByuser"/>
</resultMap>
<select id="findorderByuser" parameterType="Integer" resultType="Orders">
SELECT * from t_order where customer_id=
</select>
2 嵌套结果
<!-- 一对多:查看某一用户及其关联的订单信息
注意:当关联查询出的列名相同,则需要使用别名区分 -->
<select id="findUserWithOrders" parameterType="Integer"
resultMap="UserWithOrdersResult">
SELECT u.*,o.id as orders_id,o.number
from t_customer u,t_order o
WHERE u.id=o.customer_id
and u.id=
</select>
<resultMap type="Customer" id="UserWithOrdersResult">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="jobs" column="jobs"/>
<result property="phone" column="phone"/>
<!-- 一对多关联映射:collection
ofType表示属性集合中元素的类型,List<Orders>属性即Orders类 -->
<collection property="ordersList" ofType="Orders">
<id property="id" column="id"/>
<result property="number" column="number"/>
</collection>
</resultMap>