阅读量:128
在Mybatis中,一对多关联通常是通过在主实体类中定义一个集合属性来表示多方的实体集合,并在Mapper XML文件中使用嵌套查询的方式来进行配置。
下面是一个示例,演示如何在Mybatis中配置一对多关联:
- 首先在主实体类中定义一个集合属性来存储多方的实体集合:
public class User {
private Long id;
private String username;
private List orders;
// 省略getter和setter方法
}
- 在Mapper XML文件中,使用嵌套查询的方式配置一对多关联,例如:
<!-- 查询用户信息及其订单信息 -->
<select id="getUserAndOrders" resultType="User">
SELECT
u.id,
u.username,
o.id as order_id,
o.order_no
FROM user u
LEFT JOIN order o ON u.id = o.user_id
WHERE u.id = #{userId}
</select>
- 在配置文件中配置关联的映射关系,例如:
<resultMap id="userMap" type="User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<collection property="orders" ofType="Order">
<id column="order_id" property="id"/>
<result column="order_no" property="orderNo"/>
</collection>
</resultMap>
- 最后,在Mapper接口中定义查询方法:
public interface UserMapper {
User getUserAndOrders(Long userId);
}
这样就完成了一对多关联的配置,在查询用户信息时会同时查询其订单信息并封装到用户实体类的orders属性中。