溫馨提示×

mybatis如何配置一對多關(guān)系

小億
87
2024-01-18 21:18:07
欄目: 編程語言

在MyBatis中配置一對多關(guān)系,需要使用嵌套查詢和嵌套結(jié)果映射。

首先,需要在Mapper XML文件中定義兩個查詢語句,一個用于查詢主表信息,另一個用于查詢從表信息。例如:

<!-- 查詢主表信息 -->
<select id="selectMainTable" resultMap="MainTableResultMap">
    SELECT *
    FROM main_table
</select>

<!-- 查詢從表信息 -->
<select id="selectSubTable" resultMap="SubTableResultMap">
    SELECT *
    FROM sub_table
    WHERE main_table_id = #{mainTableId}
</select>

然后,需要定義兩個ResultMap,分別用于映射主表和從表的結(jié)果集。例如:

<!-- 主表ResultMap -->
<resultMap id="MainTableResultMap" type="MainTable">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <!-- 定義從表的集合 -->
    <collection property="subTables" ofType="SubTable" resultMap="SubTableResultMap" />
</resultMap>

<!-- 從表ResultMap -->
<resultMap id="SubTableResultMap" type="SubTable">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <result property="mainTableId" column="main_table_id" />
</resultMap>

最后,在Mapper接口中定義方法,調(diào)用上述兩個查詢語句來實現(xiàn)一對多關(guān)系的查詢。例如:

public interface MainTableMapper {
    MainTable selectMainTable(int id);
}

在調(diào)用selectMainTable方法時,MyBatis會先執(zhí)行查詢主表信息的SQL語句,然后根據(jù)主表的ID值,執(zhí)行查詢從表信息的SQL語句,并將查詢結(jié)果映射到主表對象中的從表集合屬性中。

0