使用参数类型int时,MyBatis列类型无效

时间:2012-01-27 14:45:20

标签: java mybatis

每当我尝试在查询中使用参数时,我都会收到SQLException“无效的列类型”。数据库字段“assessment_id”在oracle中的类型为“NUMBER(15)”。如果我将#{value}更改为1,那么它可以正常工作并返回我的Concern对象列表。但是,当我尝试使用此参数时,我得到SQL异常。我仍然不确定在XML中为变量名添加什么,我尝试使用与我传入的变量相同的名称。

这是我的mapper配置。

<mapper namespace="ConcernMap">
<resultMap id="ConcernResult" type="com.xxx.name.model.Concern" >
    <result column="insCurrent" property="insCurrent"/>
</resultMap>

<select id="fetchConcernsByWorkflowId" parameterType="int" resultMap="ConcernResult">
    SELECT 
    INSURANCE_CURRENT as insCurrent 
    from KOR_CONCERN where assessment_id = #{value}
</select>
</mapper>

2 个答案:

答案 0 :(得分:6)

尝试将jdbcType=NUMERIC添加到您的查询

SELECT 
INSURANCE_CURRENT as insCurrent 
from KOR_CONCERN where assessment_id = #{value,jdbcType=NUMERIC}

答案 1 :(得分:0)

我遇到了类似的错误,但是使用了@Results注释。

结果证明Mybatis与Lombok的@Builder搭配不好,并且错误地标识了我的bean的属性类型。

从Bean中删除@Builder注释解决了此问题。