1. 程式人生 > >ibatis與springmvc出現Check the result mapping for the 'xxx' property的錯誤

ibatis與springmvc出現Check the result mapping for the 'xxx' property的錯誤

有與專案需要,將資料庫中的一個表增加了一個欄位。

隨後PO類也跟著增加一個欄位。在ibatis的配置文集中需要修改resultMap,增加一個result。

如下:

修改前

<resultMap id="privilege" class="com.hsfund.framework.pojo.Privilege">
        <result property="id" column="I_ID"/>
        <result property="name" column="VC_NAME"/>
        <result property="privKey" column="VC_PRIV_KEY"/>
        <result property="privType" column="C_PRIV_TYPE"/>
        <result property="privUrl" column="VC_PRIV_URL"/>
        <result property="privDesc" column="VC_PRIV_DESC"/>
        <result property="parentId" column="I_PARENT_ID"/>
</resultMap>
修改後
<resultMap id="privilege" class="com.hsfund.framework.pojo.Privilege">
        <result property="id" column="I_ID"/>
        <result property="name" column="VC_NAME"/>
        <result property="privKey" column="VC_PRIV_KEY"/>
        <result property="privType" column="C_PRIV_TYPE"/>
        <result property="privUrl" column="VC_PRIV_URL"/>
        <result property="privDesc" column="VC_PRIV_DESC"/>
        <result property="parentId" column="I_PARENT_ID"/>
        <result property="imgPath" column="VC_IMG_PATH"/>
</resultMap>

但是專案重新執行時出現瞭如標題所述的異常。

問題困擾我很久,之前也出現過,但是莫名其妙的就好了,不知道是什麼原因。(現在想想,估計是伺服器快取的原因吧、或者是ibatis內部的問題)

解決辦法

保持“修改前”的resultMap不變。從新增加一個。如下:

之前的保持不變:

<resultMap id="privilege" class="com.hsfund.framework.pojo.Privilege">
        <result property="id" column="I_ID"/>
        <result property="name" column="VC_NAME"/>
        <result property="privKey" column="VC_PRIV_KEY"/>
        <result property="privType" column="C_PRIV_TYPE"/>
        <result property="privUrl" column="VC_PRIV_URL"/>
        <result property="privDesc" column="VC_PRIV_DESC"/>
        <result property="parentId" column="I_PARENT_ID"/>
</resultMap>

重新定義一個resultMap(<span style="color:#FF0000;"><span style="background-color: rgb(255, 255, 255);">之前的id為privilege,新增加的id為privilege2</span></span>),在其他sql語句標籤引用時 引用privilege2就可以了。
<pre name="code" class="html">


重新定義一個resultMap,之前的id為privilege,新增加的為privilege2.

<resultMap id="privilege2" class="com.hsfund.framework.pojo.Privilege">
        <result property="id" column="I_ID"/>
        <result property="name" column="VC_NAME"/>
        <result property="privKey" column="VC_PRIV_KEY"/>
        <result property="privType" column="C_PRIV_TYPE"/>
        <result property="privUrl" column="VC_PRIV_URL"/>
        <result property="privDesc" column="VC_PRIV_DESC"/>
        <result property="parentId" column="I_PARENT_ID"/>
        <result property="imgPath" column="VC_IMG_PATH"/>
</resultMap>

修改之後相關的引用resultMap指出,重新啟動專案,執行正常。
真奇怪。說實話,我現在也不清楚到底是什麼原因發火