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 函式把查詢出來的欄位放進去