溫馨提示×

mybatis一對多映射怎么配置

小億
101
2023-12-05 11:51:44
欄目: 編程語言

MyBatis支持一對多關(guān)系的映射配置可以通過使用resultMap元素來實(shí)現(xiàn)。下面是一個(gè)示例配置:

首先,需要在mapper.xml文件中定義一個(gè)resultMap元素,用于映射一對多關(guān)系。在resultMap元素中,可以使用collection元素來定義關(guān)聯(lián)的多個(gè)對象。

<resultMap id="orderItemResultMap" type="Order">
  <id property="id" column="order_id"/>
  <result property="total" column="order_total"/>
  <result property="items" column="order_id" javaType="java.util.List" ofType="OrderItem"
          select="selectOrderItemsByOrderId"/>
</resultMap>

<resultMap id="orderItemResultMap" type="OrderItem">
  <id property="id" column="item_id"/>
  <result property="name" column="item_name"/>
  <result property="price" column="item_price"/>
</resultMap>

在上面的示例中,我們定義了兩個(gè)resultMap元素,分別用于映射Order和OrderItem對象。

然后,需要在mapper.xml文件中定義一個(gè)select元素,用于查詢訂單及其對應(yīng)的訂單項(xiàng)。

<select id="selectOrderItemsByOrderId" resultMap="orderItemResultMap">
  SELECT *
  FROM order_items
  WHERE order_id = #{orderId}
</select>

在上面的示例中,我們通過select元素定義了一個(gè)查詢,通過orderId參數(shù)查詢訂單項(xiàng)。

最后,需要在mapper接口中定義一個(gè)方法,用于執(zhí)行查詢操作。

public interface OrderMapper {
  Order selectOrderById(int id);
}

在上面的示例中,我們定義了一個(gè)selectOrderById方法,用于查詢訂單及其對應(yīng)的訂單項(xiàng)。

通過上述配置和代碼,就可以實(shí)現(xiàn)MyBatis的一對多映射配置。在查詢訂單時(shí),MyBatis會(huì)自動(dòng)查詢訂單項(xiàng),并將其關(guān)聯(lián)到訂單對象中的items屬性中。

0