在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屬性中。