我試圖映射創建將填充vehicleVO的結果地圖。我想將幾列映射到vehicleDocuments HashMap。我將要填充的數據也存在於同一個表中。Mybatis結果地圖將值映射到模型的哈希映射字段
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;
}
我想使用下面的xml進行映射。但它似乎並不奏效。我一個gettign這個錯誤
「元素類型的內容 「結果」 必須匹配 「(構造函數?,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>
如果我的理解是正確的,試圖映射到一個HashMap中,也可視爲關聯映射。但是,這是一個一對一的映射而已。我也使用映射<collection>
標籤試過。不過我得到的相同的錯誤
@devdanke - 我不同意。儘管這是真的,但引用的錯誤消息是DTD驗證錯誤,問題的要點是「我想將少量列映射到vehicleDocuments HashMap」,這需要使用ResultHandler完成,至少在2012年完成。 – Andy