Докато вмъквате записите в таблицата mysql, получавате изключение

Вмъквам стойности в една от таблиците на 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. В моя клас картограф имам

 <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>

so I don't understand why I am getting the above exception if everything is all right.

Моля, уведомете ме, ако съм пропуснал нещо.


person Harry    schedule 21.08.2012    source източник
comment
Вероятно всичко не е наред. Ако във вашата таблица id се увеличава автоматично, защо използвате selectKey?   -  person jddsantaella    schedule 21.08.2012
comment
Опитайте с промяна на java.lang.Integer в selectKey на java.lang.Long.   -  person Satish Pandey    schedule 22.08.2012


Отговори (1)


MyBatis се опитва да извика метод "setId" на клас FeedEntry с параметър на java.lang.Integer и резултатът е ClassCastException.

Трябва да се уверите, че типът резултат на клавиша за избор дава правилен тип.

person Andy    schedule 22.08.2012