2017-08-15 1 views
0

Est-ce qu'une requête dynamique peut être écrite dans le repos de données de ressort comme suit. Sinon, comment obtenir une fonctionnalité similaire:Requête dynamique dans les données de ressort jpa

@Query("select s from Screen s where s.#searchColumn like:searchValue%") 
    @RestResource(path="byString") 
    Page findAll(
      @Param("searchColumn") String searchColumn, 
      @Param("searchValue") String searchValue, 
      Pageable pageable); 

Répondre

0

No. support JPA données Spring onlyentityName variables à l'intérieur des modèles de requête sur la base SPEL

Pour les requêtes dynamiques utilisent:

+0

c'est possible. Vérifie ma réponse. – ArslanAnjum

+0

@ArslanAnjum votre approche n'est pas entièrement correcte car elle utilise une colonne fixe. Mais votre question signifiait des colonnes dynamiques (c'est-à-dire des conditions dynamiques) ... – Cepr0

1

Résolu

repo

@Query("select o from Screen o where " 
      + "(o.screenName like :val% and :prop = 'screenName') or " 
      + "(o.address like :val% and :prop = 'address')") 
@RestResource(path="byString") 
Page findAll(
     @Param("prop") String prop, 
     @Param("val") String val, 
     Pageable pageable); 

Requête:

/api/screens/search/byString?prop=address&val=a 

testé avec prop = adresse ainsi que prop = ScreenName. Travailler :)