MyBatis foreach: нет ошибки для ошибки свойства - PullRequest
0 голосов
/ 01 ноября 2019

При выполнении цикла foreach в mybatis я получаю сообщение об ошибке «нет метода получения свойства». Из формы я получаю массив строк (хэштег). В моем PostInfoVO у меня есть список строк, таких как:

private List<String> hashtags;

и его методы получения и установки, такие как:

public List<String> getHashtags() {
    return hashtags;
}
public void setHashtags(List<String> hashtags) {
    if (this.items == null)
        this.items = new ArrayList<String>();
}

Я проверил, что список хэштегов передает данные вКотроллер путем регистрации postvo.getHashtags (). toString ().

В моем файле MyBatis у меня есть следующий цикл foreach, который возвращает «в PostInfoVO нет метода get для хэштега свойства.

<![CDATA[
  BEGIN
  <foreach collection="hashtags" item="hashtag" separator=",">
  INSERT INTO TBL_HASHTAG_INFO(post_id, hashtag)
  VALUES
  ((SELECT post_id FROM TBL_POST_INFO ORDER BY post_id DESC LIMIT 1), #{hashtag})
  </foreach>;
  ]]>
  END;

Список вещей, которые я пробовал:

  • Удаление начала и конца

  • Извлечение оператора Insert из цикла foreach

  • Open = "(", Close = ")"

Любой совет будет принят! Огромное спасибо.

1 Ответ

0 голосов
/ 01 ноября 2019

В вашем коде есть две проблемы: ваше имя поля - хэштеги, но вы использовали this.items в методе сеттера, и с помощью этого метода сеттера вы реализовали аргумент метода сеттера, который никогда не присваивается хэштегам (полю). Отредактируйте его, как показано ниже:

public void setHashtags(List<String> hashtags) {
    this.hashtags = hashtags;
}
...