代码执行sql和数据库执行sql结果不一致,join mybatis association id 的问题

碰到了在service的代码中执行sql,和在数据库客户端执行sql执行结果不一致的问题。

sql如下

<select id="getFilterByExample" resultMap="PindanExtendResultMap">

select p.*,u.realname realname,a.nickname nickname from roadshow.tb_dxzf_pindan p 

left JOIN roadshow.tb_user u on p.owner_id = u.id

left JOIN roadshow.tb_customer c on u.mobile = c.mobile

left JOIN roadshow_security.admin_user a on c.sales_id = a.id

</select>

在代码中执行返回的数据和在数据库客户端执行的结果不一致。

经过检查后发现是如下的问题

<resultMap id="PindanExtendResultMap"

type="com.bruce.geekway.model.data.PindanExtend">

<result column="realname" property="realname" jdbcType="VARCHAR" />

<result column="nickname" property="nickname" jdbcType="VARCHAR" />

<result column="id" property="pindanId" jdbcType="INTEGER" /> // 这一行,如果没有,就会出现问题。

<association property="pinDan" column="id" javaType="com.bruce.geekway.model.PinDan" >

<id column="id" property="id" jdbcType="INTEGER" />

  <result column="listco_code" property="listcoCode" jdbcType="VARCHAR" />

  <result column="listco_name" property="listcoName" jdbcType="VARCHAR" />

</association>

</resultMap>

model如下

public class PindanExtend {

public PinDan pinDan;

public Integer pindanId; // 需要添加association的model的id,即PinDan的id,否则会出错。

public String realname;

public String nickname;

}

 

参考 : http://www.cnblogs.com/zemliu/archive/2013/08/16/3263053.html

http://blog.csdn.net/sailei/article/details/51158462

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wangziqiang/p/6401516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值