在MySQL中,可以使用ResultMap來映射嵌套關系。下面是一個示例,展示如何在MyBatis中使用ResultMap來映射嵌套關系:
首先,創建兩個實體類:User
和Address
。
public class User {
private int id;
private String name;
private Address address;
// getters and setters
}
public class Address {
private int id;
private String street;
private String city;
// getters and setters
}
然后,在MyBatis的Mapper XML文件中定義ResultMap,如下所示:
<resultMap id="userAddressResultMap" type="User">
<id property="id" column="user_id"/>
<result property="name" column="user_name"/>
<association property="address" javaType="Address">
<id property="id" column="address_id"/>
<result property="street" column="street"/>
<result property="city" column="city"/>
</association>
</resultMap>
在這個ResultMap中,我們定義了一個名為userAddressResultMap
的ResultMap,它映射了User
實體和Address
實體之間的嵌套關系。User
實體中包含一個Address
實體作為其屬性,通過<association>
標簽來定義這種嵌套關系。
最后,在查詢語句中引用這個ResultMap:
<select id="getUserById" resultMap="userAddressResultMap">
SELECT u.id as user_id, u.name as user_name, a.id as address_id, a.street, a.city
FROM users u
JOIN addresses a ON u.address_id = a.id
WHERE u.id = #{userId}
</select>
在這個查詢語句中,我們使用了之前定義的userAddressResultMap
來映射查詢結果到User
對象上,并且查詢結果中包含了User
對象和Address
對象之間的嵌套關系。