Именованный параметр не обнаружен - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть простой запрос следующим образом.Я получаю ожидаемый результат, если жестко закодировать значение идентификатора следующим образом.Но он выдает исключение IllegalArgumentException, если я пытаюсь получить значение из Param.Обратите внимание, что я попытался использовать Param как long, так и String, и все еще с теми же результатами.Посоветуйте пожалуйста что я делаю не так.Благодарю.

Мой запрос

public interface FeedDetailRepository extends JpaRepository<FeedDetail, Long> {
    @Query("select fd.message from FeedDetail as fd where fd.feedId =: id")
    String custom(@Param("id") long id);
}  

В Controller, если я запускаю следующее, я получаю исключение.

@GetMapping("/something/{id}")
    public String getDetail(@PathVariable long id){
        return feedDetailRepository.custom(id);
    }

Но если я жестко закодирую значение идентификатора следующим образом, я получу желаемый результат.

public interface FeedDetailRepository extends JpaRepository<FeedDetail, Long> {
    @Query("select fd.message from FeedDetail as fd where fd.feedId = 4")
    String getDetailBasedOnFeedId(@Param("id") long id);
}

Исключение

Вложенное исключение - java.lang.IllegalArgumentException: org.hibernate.QueryException: Именованный параметр не привязан: id

1 Ответ

0 голосов
/ 10 февраля 2019

Я бы изменил

 @Query("select fd.message from FeedDetail as fd where fd.feedId =: id")

На (разница в пространстве)

 @Query("select fd.message from FeedDetail as fd where fd.feedId = :id")

Это небольшая разница для вас, но большая для весны.Он распознает параметр, прикрепив имя к двоеточию следующим образом:

: id

Для получения дополнительной информации см. Официальный справочник JPA по весенним данным .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...