Ibatis resultmap 与select 字段多少的问题

如下:resultMap

 <resultMap id="userResult" class="com.eclink.uc.user.vo.UserVO" >
    <result column="USER_ID" property="userId" jdbcType="NUMBER" nullValue="0" />
    <result column="LOGIN_NAME" property="loginName" jdbcType="VARCHAR" nullValue=""/>
    <result column="REAL_NAME" property="realName" jdbcType="VARCHAR" nullValue=""/>
    <result column="STATUS" property="status" jdbcType="VARCHAR" nullValue=""/>
    <result column="TELEPHONE" property="telephone" jdbcType="VARCHAR" nullValue=""/>
    <result column="EMAIL" property="email" jdbcType="VARCHAR" nullValue=""/>
    <result column="CREATE_DATE" property="createDate" jdbcType="TIMESTAMP" nullValue="" />
    <result column="SEX" property="sex" jdbcType="TIMESTAMP" nullValue="" />
    <result column="MOBILE" property="mobile" jdbcType="TIMESTAMP" nullValue="" />
    <result column="DEFAULT_ORG_ID" property="defaultOrgId" jdbcType="NUMBER" nullValue="0" />
    <result column="DEFAULT_SYSTEM_CODE" property="defaultSystemCode" jdbcType="VARCHAR" nullValue="" />
  </resultMap>

 

select 语句如下:

<select id="getUserById" resultMap="userResult" parameterClass="int">
		 <![CDATA[ select to_char(create_date,'YYYY-MM-DD') as CREATE_DATE,STATUS,REAL_NAME,LOGIN_NAME,CREATE_USER,USER_ID,SEX,TELEPHONE,MOBILE,EMAIL,to_char(last_update_date,'YYYY-MM-DD') as LAST_UPDATE_DATE,DEFAULT_ORG_ID  from UC_USER where USER_ID = #userId:NUMBER#  ]]>
	</select>

 

即select 中没有DEFAULT_SYSTEM_CODE字段出来,运行的时候会报错

也就是说SELECT 中查出的字段数要大于或等于resultMap的了数量

这样要注意了,如果原来写好的resultMap与select 是一一对应的,那么维护的时候最好不要直接在原来的resultMap上加一个字段,因为可能多个select 语句引用了该resultMap

最好的方法就是写一个resultMap继承自上面的resultMap,然后写一个select

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值