Mybatis selectKey不返回序列值

时间:2017-05-18 00:42:02

标签: java sql oracle mybatis ibatis

我在mybatis中使用以下插入查询。在ibatis中,相同的查询将seq_consumer_id.nextval返回给java中的调用方法,并将其插入到consumer_id列中。但是在mybatis中,方法的返回值始终为1(我假设其中没有插入行),尽管从序列中正确更新了consumer_id列。我们不能生成密钥,插入密钥并将其返回给mybatis中的java类吗?

<insert id="insertConsumer" parameterType="com.enrollment.vo.ConsumerVO">
            <selectKey keyProperty="id" resultType="int" order="BEFORE">
                select seq_consumer_id.nextval as id from dual
            </selectKey>
                    insert into quotation_consumer (consumer_id, consumer_type, dob,  
                    create_date, ENROLLMENT_INDICATOR, QUOTE_ID,IS_PRIMARY) 
                    values(#{id},#{type.id}, #{birthdate, jdbcType=DATE}, default, #{enrollmentIndicator}, 
                    #{quoteId},#{isPrimary})

        </insert>

1 个答案:

答案 0 :(得分:1)

实际上,该方法返回受影响的行数。

序列ID存储在作为参数传递的ìd com.enrollment.vo.ConsumerVO属性中。