HashMap 嵌套数组的映射文件 resultType 设置指南
HashMap 嵌套数组的映射文件 resultType 设置指南
在使用 MyBatis 映射文件时,如果 HashMap 嵌套了数组,那么 resultType 的设置取决于数组中元素的数据类型。
1. 基本数据类型或简单对象类型
如果数组中的元素是基本数据类型(如 int、long、double 等)或者简单对象类型(如 String、Date 等),可以使用对应的 Java 类型作为 resultType。例如:
<resultMap id="userResult" type="com.example.User">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
<result property="addresses" column="addresses" javaType="java.util.List"
ofType="java.lang.String" />
</resultMap>
2. 复杂对象类型
如果数组中的元素是复杂对象类型,可以使用对应的 Java 类的全限定名作为 resultType。例如:
<resultMap id="userResult" type="com.example.User">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
<result property="addressList" column="addressList"
javaType="java.util.List" ofType="com.example.Address" />
</resultMap>
3. Map 类型
如果数组中的元素是 Map 类型,可以使用 java.util.Map 作为 resultType。
4. 自定义复杂类型
如果数组中的元素是自定义的复杂类型,可以使用对应的 Java 类的全限定名作为 resultType。
5. 元素类型不统一的情况
如果 HashMap 嵌套的数组中的元素类型不统一,可以考虑使用 List 作为 resultType,然后在映射文件中使用 collection 来处理。
<resultMap id="userResult" type="com.example.User">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
<collection property="addressList" column="addressList"
ofType="com.example.Address">
<result property="street" column="street" />
<result property="city" column="city" />
</collection>
</resultMap>
总结
根据 HashMap 嵌套数组中元素的数据类型选择合适的 resultType,可以使 MyBatis 正确地将查询结果映射到 Java 对象。
原文地址: https://www.cveoy.top/t/topic/mg4X 著作权归作者所有。请勿转载和采集!