1. 程式人生 > >mybatis關於一對一對映返回結果與資料庫查出的不符問題

mybatis關於一對一對映返回結果與資料庫查出的不符問題

    最近在做mybatis一對一對映時出現個錯誤,就是返回結果與資料庫查出來的結果不符合,可能碰到這個問題的人比較少,

但在這記錄一下,方便有時間找到原因。

   先來程式碼

<resultMap id="userDynamicMap" type="UserDynamicTO">
    <result property="income" column="INCOME"/>
    <result property="takedCash" column="TAKED_CASH"/>
    <result property="takingCash" column="TAKING_CASH"/>
    <result property="balance" column="BALANCE"/>
    <result property="forbidCommitBeginDate" column="FORBID_COMMIT_BEGIN_DATE"/>
    <result property="forbidCommitEndDate" column="FORBID_COMMIT_END_DATE"/>

   <association property="user" javaType="UserTO">
      <result property="id" column="ID"/>
      <result property="nickName" column="NICKNAME"/>
      <result property="num" column="NUM"/>
      <result property="shareCode" column="SHARE_CODE"/>
      <result property="alipayAccount" column="ALIPAY_ACCOUNT"/>
      <result property="status" column="STATUS"/>
      <result property="gender" column="GENDER"/>
      <result property="birthday" column="BIRTHDAY"/>
      <result property="jobTitle" column="JOB_TITLE"/>
    </association>
    
  </resultMap>

這一段是UserDynamicTO物件中包含UserTO物件,是一對一關係所以用association進行一對一關聯,但是查出來的結果對不上,

上網查詢一下有人說是因為select的時候查詢的列跟resultMap對不上,也有人說一些其他原因,但是就沒有我的這種情況。

但是改成

<resultMap id="userDynamicMap" type="UserDynamicTO">
    <result property="income" column="INCOME"/>
    <result property="takedCash" column="TAKED_CASH"/>
    <result property="takingCash" column="TAKING_CASH"/>
    <result property="balance" column="BALANCE"/>
    <result property="forbidCommitBeginDate" column="FORBID_COMMIT_BEGIN_DATE"/>
    <result property="forbidCommitEndDate" column="FORBID_COMMIT_END_DATE"/>

    <result property="user.id" column="ID"/>
    <result property="user.nickName" column="NICKNAME"/>
    <result property="user.num" column="NUM"/>
    <result property="user.shareCode" column="SHARE_CODE"/>
    <result property="user.alipayAccount" column="ALIPAY_ACCOUNT"/>
    <result property="user.status" column="STATUS"/>
    <result property="user.gender" column="GENDER"/>
    <result property="user.birthday" column="BIRTHDAY"/>
    <result property="user.jobTitle" column="JOB_TITLE"/>
    
  </resultMap>這種配置方式就可以了,到現在也沒找到具體的原因,這種情況出現的太少了,所以也沒什麼資料可以閱讀,

又看了看mybatis原始碼,還是有些沒懂,先記錄一下。碰到相同情況的留言一起探討下