1. 程式人生 > >mybatis 構造查詢和聯合子查詢問題

mybatis 構造查詢和聯合子查詢問題

   1.在關聯查詢 - 子查詢的時候

<resultMap type="Author" id="JiKeAuthorBySelect">
         <id property="id" column="author.id"/>
         <result property="realname" column="realname"/>
         <result property="IDCard" column="IDCard"/>
         <association property="jikeuser" javaType="User"
         
          column="userid" select="SelectUserByID" >
           
         </association>
     </resultMap>
      <select id="SelectUserByID" parameterType="int"
        resultType="User">
        select * from JikeUser where id=#{id}
    </select>

### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for jike.book.map.authormapping.SelectUserById

   報錯的含義配置檔案裡面沒有SelectUserById 這個語句,我的這個語句在另一個配置檔案裡面,拷到這個檔案沒有錯誤。

Caused by: java.lang.NoSuchMethodException: jike.book.dojo.User.<init>()
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getDeclaredConstructor(Unknown Source)
    at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:57)
    ... 34 more

錯誤地方在與 User 裡面加了建構函式 在執行   <select id="SelectUserByID" parameterType="int"
        resultType="User">
        select * from JikeUser where id=#{id}
    </select>

後,mybatis 無法呼叫建構函式,mybatis 通過set 函式把查詢出來的欄位放進去