`
ollevere
  • 浏览: 260857 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Mybatis 奇怪问题

 
阅读更多

计算分页总页数时 总报错:

 org.springframework.jdbc.InvalidResultSetAccessException: SqlSession operation; invalid ResultSet access for SQL []; nested exception is java.sql.SQLException: 无效的列索引

 

 

<parameterMap type="map" id="queryAllParamMap">
	<parameter property="hotelTxnState" javaType="java.lang.String" jdbcType="VARCHAR"/>
	<parameter property="ordercd" javaType="java.lang.String" jdbcType="VARCHAR"/>
	<parameter property="transactionNo" javaType="java.lang.String" jdbcType="VARCHAR"/>
	<parameter property="chnName" javaType="java.lang.String" jdbcType="VARCHAR"/>
	<parameter property="checkindate" javaType="java.util.Date" jdbcType="DATE"/>
	<parameter property="checkoutdate" javaType="java.util.Date" jdbcType="DATE"/>
	<parameter property="pageNo" javaType="int" jdbcType="INTEGER"/>
	<parameter property="pageSize" javaType="int" jdbcType="INTEGER"/>
</parameterMap>

 

 

	<select id="queryHotelOrderAllInfoPage" parameterMap="queryAllParamMap" resultType="java.lang.Integer" >
		SELECT COUNT(*) FROM (
			 select pch.*,pc.chn_name,pc.class_code_descr, pc.national_code_descr
		      from pkg_ctshkhotel_hotelorder pch 
		      left join (select distinct hotel_code,chn_name,class_code,class_code_descr,national_code,national_code_descr from PKG_CTSHKHOTELPRICE ) pc 
		           on pch.hkhotelcd=pc.hotel_code and pch.hkhotelroomkind=pc.class_code and pch.hkhotelpricekind=pc.national_code 
		      <where>
		      	<if test="hotelTxnState != '' and hotelTxnState != null">pch.hoteltxnstate=#{hotelTxnState}</if>
		      	<if test="ordercd != '' and ordercd != null">and pch.ordercd like CONCAT(CONCAT('%', #{ordercd}),'%')</if>
		      	<if test="chnName != '' and chnName != null">and pc.chn_name like CONCAT(CONCAT('%', #{chnName}),'%')</if>
		      	<if test="checkindate != null"><![CDATA[and pch.checkindate >= #{checkindate}]]> </if>
		      	<if test="checkoutdate != null"><![CDATA[and pch.checkoutdate <= #{checkoutdate}]]> </if>
		      	<if test="transactionNo != '' and transactionNo != null">
		      		and pch.id in (select orderid from pkg_ctshkhotel_hoteltrace where transactionno like CONCAT(CONCAT('%', #{transactionNo}),'%')
		      	</if>
		      </where>
		      order by pch.id desc) t
	</select>

 

 

 

调用方式如下:

queryHotelOrderAllInfoPage("", "", "", "", null, null, 1, 5) //调用

 就报以上错误!但当所有的参数都为空时就报错,(后面2个参数不算,因为没有用到), 只要前面6个参数传入一个参数就可以得到正确的结果! 郁闷。。。

 

甚至 把该select 语句改为 :

SELECT COUNT(*) FROM pkg_ctshkhotel_hotelorder

 

还是报错!

 

 

但我把parameterMap 里所有的参数全删掉时就不报错了。

可是我分页的查询语句 也是使用的是 parameterMap , 参数全为空时都可以得到正确的结果。。

 

留以后有时间再研究研究...

 

 

 

分享到:
评论
3 楼 hoho-3 2015-10-10  
parameterMap 改成parameterType就行了
2 楼 sbwfgihc 2015-05-01  
楼主有答案要贴上来的哟
1 楼 xiaocao000 2012-04-18  
这个问题有答案了么, 呵呵, 我也想知道原因

相关推荐

Global site tag (gtag.js) - Google Analytics