在Mybatis中,一对多关联通常是通过在主实体类中定义一个集合属性来表示多方的实体集合,并在Mapper XML文件中使用嵌套查询的方式来进行配置。
下面是一个示例,演示如何在Mybatis中配置一对多关联:
public class User {
private Long id;
private String username;
private List<Order> orders;
// 省略getter和setter方法
}
<!-- 查询用户信息及其订单信息 -->
<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>
public interface UserMapper {
User getUserAndOrders(Long userId);
}
这样就完成了一对多关联的配置,在查询用户信息时会同时查询其订单信息并封装到用户实体类的orders属性中。