2015-12-14 9 views
3

Я пытаюсь вставить список в Mybatis и получаю ошибку foloowing:Mybatis BindingException Параметр «__frch_e_0» не найден

org.apache.ibatis.binding.BindingException: Parameter '__frch_e_0' not found. Available parameters are [list] 

Можете ли вы, пожалуйста, дайте знать, что я пропускаю. Благодаря интерфейс

DAO:

void saveErrorMessageList(List<ErrorMessage> emList); 

XML:

<insert id="saveErrorMessageList" parameterType="java.util.List"> 
     {call 
     declare 
      ID PLS_INTEGER; 
     begin 
     <foreach collection="list" item="e" index="index" > 
      SELECT SEQ_ERR_ID.NEXTVAL into ID FROM DUAL; 

      INSERT INTO ERR (ERR_ID, CREAT_TS, 
      MSG_CD, MSG_TXT) values (ID,CURRENT_TIMESTAMP, 
      #{e.code}, #{e.message}); 
     </foreach> 
     end 
     } 
    </insert> 

Сообщение об ошибке:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_e_0' not found. Available parameters are [list] 
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) 
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) 
    at com.sun.proxy.$Proxy11.insert(Unknown Source) 
    at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:240) 
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:51) 
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) 
    at com.sun.proxy.$Proxy12.saveBeneErrorMessageList(Unknown Source) 
    at ... 
    ... 35 more 
+0

Удалось ли вам это исправить? – Arsen

+0

Извините @Arsen .... nope. Мне пришлось делать отдельные вставки .... не влияло на производительность, так как размер данных был небольшим – Harry

ответ

1
  • проверка имени столбца и боб имя поля в SQL

  • попытка обновить mybatis версию. когда я использую 3.3.0, используйте эту ошибку, но используйте 3.4.1, это нормально

+0

Извините за поздний ответ ... но обновление версии до 3.4.2 исправило проблему. Поэтому я собираюсь отметить это как правильно. – Harry

0

Пожалуйста, проверьте Еогеасп тег для атрибута коллекции. Я считаю, что значение должно быть «emList» или добавить @Param (org.apache.ibatis.annotations.Param) в методе интерфейса.

<foreach collection="emList" item="e" index="index" > 

     INSERT INTO ERR (ERR_ID, CREAT_TS, 
     MSG_CD, MSG_TXT) values (CURRENT_TIMESTAMP, 
     #{e.code}, #{e.message}); 
    </foreach> 

</insert> 
+0

Спасибо за ваш ответ, но все равно не сработает :( – Harry

+0

void saveList (@Param ("emList") Список emList) – Harry

+0

\t ... – Harry