在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>()
...全文
354 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp961218 2017-12-18
  • 打赏
  • 举报
回复
<resultMap type="orders" id="ordersUserMap5" extends="ordersMap">
<association property="user" column="{id=userId}" select="selectUserById"/>
</resultMap>
没搞懂配这个是要干嘛
带翅膀的猫 2017-12-18
  • 打赏
  • 举报
回复
现在搞定了,是由于assocation的column中不应该是id=userId,而是userId
Timor_D 2017-12-18
  • 打赏
  • 举报
回复
看下你的数据库连接是不是出现问题了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧