Ich möchte eine ähnliche Abfrage schreiben JpaRepository
aber sie gibt nichts zurück:
LIKE '%place%'
-es funktioniert nicht.
LIKE 'place'
funktioniert perfekt.
Hier ist mein Code:
@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
sudeep cv
quelle
quelle
like '%:place%'
mit'
und es gab keine Ergebnisse überhaupt, weil Hibernate fügt'
s in Strings von selbst aus .Sie brauchen die
@Query
Anmerkung überhaupt nicht.Sie können einfach Folgendes verwenden
quelle
@Query()
ist ein Muss, oder? Mit diesem Ansatz müsste ich machen,or
dass dies eigentlich keine gut geeignete Lösung für diesen Fall ist:findByField1OrField2Containg(String phraseForField1, String phraseForField2)
Sie können ähnliche Abfragen auch mit dem von Spring Data JPA unterstützten Schlüsselwort "Containing" implementieren .
quelle
Für Ihren Fall können Sie direkt JPA-Methoden verwenden. Das ist wie unten:
Enthält: Wählen Sie ... wie%: Ort%
Hier hilft Ihnen IgnoreCase bei der Suche nach Elementen, wobei der Fall ignoriert wird.
Verwenden von @Query in JPQL :
Hier sind einige verwandte Methoden:
Mögen
findByPlaceLike
… Wo x.place wie? 1
Beginnen mit
findByPlaceStartingWith
… Wo x.place wie? 1 (Parameter mit angehängtem% gebunden)
EndingWith
findByPlaceEndingWith
… Wo x.place wie? 1 (Parameter mit vorangestelltem% gebunden)
Enthält
findByPlaceContaining
… Wo x.place wie? 1 (Parameter in% eingeschlossen)
Weitere Informationen finden Sie unter diesem Link , diesem Link und diesem
Hoffe das wird dir helfen :)
quelle
Sie können Platzhalter alternativ wie folgt verwenden:
quelle
Versuche dies.
quelle
something=:place
undanother like %:place%
in Abfrage verwenden.Wenn ich Funktion anrufe, benutze ich:
findByPlaceContaining("%" + place);
oder:
findByPlaceContaining(place + "%");
oder:
findByPlaceContaining("%" + place + "%");
quelle
Antwort genau wird sein
quelle
Gefundene Lösung ohne
@Query
(eigentlich habe ich versucht, welche "akzeptiert" wird. Es hat jedoch nicht funktioniert).Müssen zurückkehren
Page<Entity>
stattList<Entity>
:IgnoreCase
Teil war entscheidend, um dies zu erreichen!quelle