guyuehhh 发表于 2016-11-25 09:30:25

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"><!]> </if>
<if test="checkoutdate != null"><!]> </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 , 参数全为空时都可以得到正确的结果。。
  留以后有时间再研究研究...
页: [1]
查看完整版本: Mybatis 奇怪问题