最近在用ibatis连接Oracle,出现了几种列名无效的情况:
— The error occurred in com/kingdee/youshang/basedata/mapper/ProductOnSale.xml.
— The error occurred while applying a result map.
— Check the ProductOnSale.ProductOnSaleResult.
— Check the result mapping for the ‘id’ property.
— Cause: java.sql.SQLException: 列名无效]; SQL was [] for task [SqlMapClient operation]
将一些可能的原因列出来:
一、SQL语句映射文件:
1.查询语句返回的结果字段集不是所对应resultMap里面映射字段集的父集或相等,例如:
resultMap 映射为:
<resultMap class=”ProductOnSale” id=”ProductOnSaleResult”>
<result column=”FID” javaType=”long” jdbcType=”BIGINT” property=”id”/>
<result column=”FFUNDNAME” javaType=”string” jdbcType=”VARCHAR” property=”fundname”/>
</resultMap>
而SQL返回只有FFUNDNAME(没有FID):
<select id=”findProducts” resultMap=”ProductOnSaleResult”>/*dialect*/
SELECT FFUNDNAME FROM T_BS_PRODUCT_ON_SALE POS
</select>
2.resultMap配置里面的字段名前面加了表名:
<resultMap id=”ProductOnSaleResult”>
<result column=”POS.FID” javaType=”long” jdbcType=”BIGINT” property=”id”/>
<result column=”POS.FFUNDNAME” javaType=”string” jdbcType=”VARCHAR” property=”fundname”/>
</resultMap>
支持一下!!呵呵