Я хотел бы написать подобный запрос, JpaRepository
но он ничего не возвращает:
LIKE '%place%'
-это не работает.
LIKE 'place'
работает отлично.
Вот мой код:
@Repository("registerUserRepository")
public interface RegisterUserRepository extendsJpaRepository<Registration,Long> {
@Query("Select c from Registration c where c.place like :place")
List<Registration> findByPlaceContaining(@Param("place")String place);
}
java
jpa
spring-data-jpa
замша cv
источник
источник
like '%:place%'
с помощью,'
и никаких результатов не было, потому что Hibernate сам добавляет'
s к строкам.Вам вообще не нужна
@Query
аннотация.Вы можете просто использовать следующие
источник
@Query()
что это необходимо, правда? При таком подходе я должен был бы сделатьor
это на самом деле не очень подходящее решение для этого случая:findByField1OrField2Containg(String phraseForField1, String phraseForField2)
Вы также можете реализовать аналогичные запросы, используя ключевое слово «Содержит», поддерживаемое Spring Data JPA .
источник
В вашем случае вы можете напрямую использовать методы JPA. Это похоже на ниже:
Содержит: select ... как%: place%
здесь IgnoreCase поможет вам искать элемент без учета регистра.
Использование @Query в JPQL :
Вот несколько связанных методов:
подобно
findByPlaceLike
… Где x.place like? 1
Начиная с
findByPlaceStartingWith
… Где x.place как? 1 (параметр связан с добавленным%)
EndingWith
findByPlaceEndingWith
… Где x.place как? 1 (параметр связан с добавлением%)
Содержащие
findByPlaceContaining
… Где x.place как? 1 (привязка параметра заключена в%)
Дополнительная информация, просмотрите эту ссылку , эту ссылку и это
Надеюсь, что это поможет вам :)
источник
У вас может быть одна альтернатива использования заполнителей как:
источник
Попробуй это.
источник
something=:place
иanother like %:place%
в запросе.при вызове функции я использую:
findByPlaceContaining("%" + place);
или:
findByPlaceContaining(place + "%");
или:
findByPlaceContaining("%" + place + "%");
источник
ответ точно будет
источник
Нашел решение без
@Query
(на самом деле я пробовал, какой из них "принят". Однако это не сработало).Придется возвращаться
Page<Entity>
вместоList<Entity>
:IgnoreCase
часть имела решающее значение для достижения этого!источник