在mysql表中插入记录时获取异常

时间:2012-08-21 10:16:13

标签: java mysql ibatis mybatis

我正在向mysql表中的一个插入值,我得到以下异常:

Could not set property 'id' of 'class com.mycom.myproject.db.mybatis.model.FeedEntry' with    value '2' Cause: java.lang.IllegalArgumentException: java.lang.ClassCastException@175e216] with root cause.

记录已成功插入表格中。在我的表中,id是自动递增,主键是非null。在我的mapper类中,我有

 <insert id="insertSelective" parameterType="com.mycom.myproject.db.mybatis.model.Category" >
<!--
  WARNING - @mbggenerated
  This element is automatically generated by MyBatis Generator, do not modify.
  This element was generated on Fri Aug 10 11:40:59 BST 2012.
-->
<selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" >
  SELECT LAST_INSERT_ID()
</selectKey>
insert into category
<trim prefix="(" suffix=")" suffixOverrides="," >
  <if test="fSourceId != null" >
    f_source_id,
  </if>
  <if test="userId != null" >
    user_id,
  </if>
  <if test="author != null" >
    author,
  </if>
  <if test="name != null" >
    name,
  </if>

</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
  <if test="fSourceId != null" >
    #{fSourceId,jdbcType=INTEGER},
  </if>
  <if test="userId != null" >
    #{userId,jdbcType=BIGINT},
  </if>
  <if test="author != null" >
    #{author,jdbcType=VARCHAR},
  </if>
  <if test="name != null" >
    #{name,jdbcType=VARCHAR},
  </if>      
</trim>

所以我不明白为什么如果一切都好的话我会得到上述异常。

如果我错过了什么,请告诉我。

1 个答案:

答案 0 :(得分:0)

MyBatis尝试使用java.lang.Integer参数调用类FeedEntry上的方法“setId”,结果是ClassCastException。

您需要确保select键的结果类型提供正确的类型。