Me gustaría escribir una consulta similar JpaRepository
pero no devuelve nada:
LIKE '%place%'
-no funciona.
LIKE 'place'
funciona perfectamente.
Aquí está mi código:
@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
fuente
fuente
like '%:place%'
con'
y no hubo ningún resultado, porque Hibernate agrega'
s a las cadenas por sí mismo.En realidad, no necesita la
@Query
anotación en absoluto.Puedes usar lo siguiente
fuente
@Query()
es imprescindible, ¿verdad? Con ese enfoque, tendría que haceror
que en realidad no sea una solución adecuada para ese caso:findByField1OrField2Containg(String phraseForField1, String phraseForField2)
También puede implementar las consultas similares utilizando la palabra clave "Containing" compatible con Spring Data JPA .
fuente
Para su caso, puede utilizar directamente los métodos JPA. Eso es como un bramido:
Contiene: seleccione ... como%: lugar%
aquí, IgnoreCase le ayudará a buscar elementos ignorando el caso.
Usando @Query en JPQL :
A continuación, se muestran algunos métodos relacionados:
Me gusta
findByPlaceLike
... donde x.place como? 1
Empezando con
findByPlaceStartingWith
... donde x.place like? 1 (parámetro enlazado con% agregado)
Terminando con
findByPlaceEndingWith
... donde x.place like? 1 (parámetro enlazado con% antepuesto)
Conteniendo
findByPlaceContaining
... donde x.place como? 1 (límite de parámetro envuelto en%)
Más información, vea este enlace , este enlace y este
Espero que esto te ayudará :)
fuente
Puede tener una alternativa de usar marcadores de posición como:
fuente
Prueba esto.
fuente
something=:place
yanother like %:place%
en consulta.cuando llamo a la función, uso:
findByPlaceContaining("%" + place);
o:
findByPlaceContaining(place + "%");
o:
findByPlaceContaining("%" + place + "%");
fuente
la respuesta exactamente será
fuente
Encontré una solución sin
@Query
(en realidad probé cuál es "aceptado". Sin embargo, no funcionó).Tienes que regresar en
Page<Entity>
lugar deList<Entity>
:IgnoreCase
parte fue fundamental para lograr esto!fuente