% Comme% Query au spring JpaRepository

Je voudrais écrire une requête similaire dans JpaRepository mais cela ne retourne rien:

LIKE '%place%' -its ne fonctionne pas.

LIKE 'place' fonctionne parfaitement.

Voici mon code:

 @Repository("registerUserRepository") public interface RegisterUserRepository extends JpaRepository{ @Query("Select c from Registration c where c.place like:place") List findByPlaceContaining(@Param("place")Ssortingng place); } 

La requête JPA de données de spring nécessite les caractères “%” ainsi qu’un espace like dans votre requête, comme dans

@Query("Select c from Registration c where c.place like %:place%") .

Cf. http://docs.spring.io/spring-data/jpa/docs/current/reference/html .

Vous voudrez peut-être vous débarrasser de l’annotation @Query, car elle semble ressembler à la requête standard (implémentée automatiquement par les proxy de données Spring); c’est-à-dire en utilisant la seule ligne

 List findByPlaceContaining(Ssortingng place); 

est suffisant.

Vous n’avez pas besoin de l’annotation @Query .

Vous pouvez simplement utiliser les éléments suivants

  @Repository("registerUserRepository") public interface RegisterUserRepository extends JpaRepository{ List findByPlaceIgnoreCaseContaining(Ssortingng place); } 

Vous pouvez également implémenter les requêtes similaires à l’aide du mot clé “Containing” pris en charge par Spring Data JPA.

 List findByPlaceContaining(Ssortingng place); 

Vous pouvez avoir une alternative d’utiliser des espaces réservés comme:

 @Query("Select c from Registration c where c.place LIKE %?1%") List findPlaceContainingKeywordAnywhere(Ssortingng place); 

quand appelez funtion, j’utilise: findByPlaceContaining("%" + place);

ou: findByPlaceContaining(place + "%");

ou: findByPlaceContaining("%" + place + "%");

Pour votre cas, vous pouvez directement utiliser les méthodes JPA. C’est comme ci-dessous:

Contenant: select … like%: place%

 List findByPlaceContainingIgnoreCase(Ssortingng place); 

Ici, IgnoreCase vous aidera à rechercher des éléments en ignorant le cas.

Voici quelques méthodes connexes:

  1. J’aime findByPlaceLike

    … Où x.place aime? 1

  2. DémarrerAvec findByPlaceStartingWith

    … Où x.place ressemble à? 1 (paramètre lié avec% ajouté)

  3. EndingAvec findByPlaceEndingWith

    … Où x.place ressemble à? 1 (paramètre lié avec% précédé)

  4. Contenant findByPlaceContaining

    … Où x.place ressemble à? 1 (paramètre lié à%)

Plus d’infos, voir ce lien et ce lien

J’espère que ceci vous aidera 🙂

répondre exactement sera

 -> `@Query (" sélectionne u de la catégorie u où u.categoryName comme%: input% ")
      List findAllByInput (@Param ("input") Entrée de chaîne);