Mybatis resultmap将值映射到模型的哈希映射字段

om3*_*39a 2 java mybatis

我正在尝试映射创建将填充vehicleVO的结果映射.我想将几列映射到vehicleDocuments HashMap.我正在填充的数据也出现在同一个表中.

public class VehicleVO implements Serializable {
    public String vehicleId;
    public String vehicleNumber;
    public String model;
    public Map<String, Date> vehicleDocuments;
    public TransportVO transport;
    public String distanceTraveled;

}
Run Code Online (Sandbox Code Playgroud)

我试图使用以下xml进行映射.但它似乎没有用.我得到了这个错误

"元素类型"resultMap"的内容必须匹配"(构造函数?,id*,结果*,关联*,集合*,鉴别器?)".

<resultMap id="BaseResultMap" type="com.svms.service.vo.VehicleVO">
        <id column="vehicle_id" jdbcType="BIGINT" property="vehicleId" />
        <result column="vehicle_no" jdbcType="VARCHAR" property="vehicleNumber" />
        <result column="Model" jdbcType="VARCHAR" property="model" />
        <association property="vehicleDocuments" javaType="java.util.HashMap">
            <result column="FC" jdbcType="DATE" property="FC_TD" />
            <result column="TAX" jdbcType="DATE" property="TAX_TD" />
            <result column="Insureance" jdbcType="DATE" property="INSURANCE_TD" />
            <result column="Form47" jdbcType="DATE" property="FORM47_TD" />
            <result column="NC" jdbcType="DATE" property="NC_TD" />
        </association>
        <result column="total_distance" jdbcType="INTEGER" property="distanceTraveled" />
        <result column="transport_id" jdbcType="BIGINT" property="transportId" />
</resultMap>
Run Code Online (Sandbox Code Playgroud)

如果我的理解是正确的,那么尝试映射到hashMap也可以被视为关联映射.但这只是一对一的映射.我也尝试使用<collection>标签进行映射.我仍然得到同样的错误.

See*_*ani 16

"resultMap"下的元素顺序应按DTD的规定进行维护.将所有"结果"标记移动到"关联"标记之前.