JPA, почему именованный параметр в собственном запросе не заменяется?

Используйте project вместо projectKey:

{
 "project": "project_1",
 "qualityProfile": "Sonar way",
 "language": "java"
}
0
задан tobi 21 January 2019 в 06:07
поделиться

3 ответа

Попробуйте:

JPQL / HQL

select c from Character c where c.pinyin like %:keyword%
select c from Character c where c.pinyin like concat('%', :keyword, '%')

Native (PostrgeSQL / MySQL)

select * from character c where c.pinyin like concat('%', :keyword, '%')
[1113 ] Native (PostrgeSQL)

select * from character c where c.pinyin like '%' || :keyword || '%'

Альтернативный вариант с методом запроса Spring Data JPA

List<Character> findByPinyinContaining(String pinyin); 

Дополнительная информация:

[ 1120]
  • Примеры пользовательских репозиториев
  • Поддерживаемые ключевые слова запросов
  • Стандартизированные функции JPQL
    0
    ответ дан Cepr0 21 January 2019 в 06:07
    поделиться

    Ваш запрос должен быть таким -

    @Query(nativeQuery=true, value="SELECT * FROM Character c WHERE c.pinyin like %:keyword%")
     List<Character> findByKeyword(@Param("keyword") String keyword);
    

    Надеюсь, это поможет.

    0
    ответ дан Sai prateek 21 January 2019 в 06:07
    поделиться

    Вы можете попробовать это:

    public interface CharacterRepository extends JpaRepository<Character, Long> {
        @Query(nativeQuery=true, value="SELECT * FROM Character WHERE pinyin like ':keyword'")
        List<Character> findByKeyword(@Param("keyword") String keyword);
    }
    

    и вызвать метод следующим образом:

    repository.findByKeyword("%myKeyword%");
    
    0
    ответ дан Brian Vosburgh 21 January 2019 в 06:07
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: