Spring Data zapytanie LIKE

0

Cześć,

Mam problem z zapytaniem do bazy w Spring Data. Mam swoją tabele place (id, name, ...) i zrobiłem formularz do wyszukiwania który wysyła treść formularza do serwera przy każdym puszczeniu klawisza (on keyup). Chciałbym aby zapytanie wyglądało tak:

select * from place where name like 'H%';

I nawet mi się to udało tylko że wydaje mi się, że Spring binduje sam znak 'H' a znak '%' traktuje jak coś innego niż pattern do porównywania.
Próbuje to zrobić takimi sposobami:

List<Place> findByNameStartingWith(String pattern);
@Query(value = "SELECT p FROM Place p WHERE p.name LIKE ?1%")
List<Place> findByPattern(String pattern);
@Query(value = "SELECT p FROM Place p WHERE p.name LIKE CONCAT(?1, '%')")
List<Place> findByPattern(String pattern);

I za kazdym razem w konsoli dostaje

2017-11-04 23:58:53.452 DEBUG 6248 --- [nio-8080-exec-5] org.hibernate.SQL                        : select place0_.id as id1_2_, place0_.description as descript2_2_, place0_.latitude as latitude3_2_, place0_.longitude as longitud4_2_, place0_.name as name5_2_, place0_.type_id as type_id6_2_, (SELECT coalesce(avg(o.grade), 0) FROM Opinion o WHERE o.place_id = place0_.id) as formula32_, (SELECT place_image.name FROM place_image WHERE place_image.place_id = place0_.id AND place_image.is_main_image = true) as formula33_ from place place0_ where place0_.name like ?
2017-11-04 23:58:53.455 TRACE 6248 --- [nio-8080-exec-5] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - ["H"%]

Zapytanie wychodzi dobre (przeklejone jako zapytanie do postgresa działa dobrze) ale problem jest z tym ze nie zwraca żadnych wyników. Nawet jak jako parametr do stringa doklejam z tyłu znak '%' to i tak binduje się on po właściwym tekście i nic nie wnosi.

Stąd moje pytanie czy wiecie jak to rozwiązać?
Próbowałem jeszcze nativeQuery ale niestety wyrzucało nulla.
Inne zapytania Spring Data działają prawidłowo.

0

List<Place> findAllByNameContains(String pattern)
powinno dzialac :)

0

Wciąż zapytanie zwraca pusty kontener.

2017-11-05 13:39:11.127 DEBUG 6092 --- [nio-8080-exec-6] org.hibernate.SQL                        : select place0_.id as id1_2_, place0_.description as descript2_2_, place0_.latitude as latitude3_2_, place0_.longitude as longitud4_2_, place0_.name as name5_2_, place0_.type_id as type_id6_2_, (SELECT coalesce(avg(o.grade), 0) FROM Opinion o WHERE o.place_id = place0_.id) as formula12_, (SELECT place_image.name FROM place_image WHERE place_image.place_id = place0_.id AND place_image.is_main_image = true) as formula13_ from place place0_ where place0_.name like ?
2017-11-05 13:39:11.128 TRACE 6092 --- [nio-8080-exec-6] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - [%"Hotel"%]
[]
0

cześć zobacz coś takiego:

@Query("SELECT p FROM Place p WHERE p.name LIKE %?1")
List<Place> findByNameStartingWith(String name);

1 użytkowników online, w tym zalogowanych: 0, gości: 1