每当我尝试在查询中使用参数时,我都会收到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>
答案 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注释解决了此问题。