在MyBatis中一对一映射assocation嵌套查询问题
带翅膀的猫 2017-12-16 11:17:14 这是mapper.xml映射文件:
<!-- assocation的嵌套查询 -->
<resultMap type="orders" id="ordersUserMap5" extends="ordersMap">
<association property="user" column="{id=userId}" select="selectUserById"/>
</resultMap>
<resultMap type="orders" id="ordersMap">
<id property="id" column="oid"/>
<result property="userId" column="userId"/>
<result property="number" column="number"/>
<result property="createtime" column="createtime"/>
<result property="note" column="note"/>
</resultMap>
<resultMap type="user" id="userMap">
<result property="id" column="id" />
<result property="username" column="username"/>
<result property="address" column="address"/>
<result property="sex" column="sex"/>
</resultMap>
<select id="selectUserById" parameterType="int" resultMap="userMap">
select id,username,sex,adderss from user where id=#{id}
</select>
<select id="queryOrdersUserById" parameterType="int" resultMap="ordersUserMap5">
select id,userId,number,createtime,note from orders where id=#{id}
</select>
这是测试类:
public void TestSelectOrdersAndUserById() {
SqlSession session = sqlSessionFactory.openSession();
OrdersMapper mapper = session.getMapper(OrdersMapper.class);
Orders orders = mapper.queryOrdersUserById(3);
System.out.println(orders);
session.commit();session.close();
}
出现错误:
Setting autocommit to false on JDBC Connection [com.mysql.jdbc.Connection@3cfcde5a]
==> Preparing: select id,userId,number,createtime,note from orders where id=?
==> Parameters: 3(Integer)在这就出错了:
Cause: java.lang.NoSuchMethodException: java.lang.Integer.<init>()