Quindi, in breve: è possibile impostare un parametro su "default: tutti" o più in generale su un valore specifico predefinito nei metodi di raccolta JPA (possibilmente @ Query-Annotated) di Spring Data?Repository JPA Data Spring: è possibile fornire un valore predefinito a tutti i parametri?
Sono aware che è possibile nei controller (Rest) impostare un valore predefinito, sono solo curioso di sapere se è possibile farlo anche a livello di repository. Potrebbe essere una bella caratteristica, penso che, per "ottenere un risultato filtrato, Setet dove i filtri potrebbero non essere impostati in frontend da una chiamata di riposo" è un caso d'uso molto comune.
Esempio-Query:
@Query("select new com.my.dto(e.name, e.age, e.address)" +
" from Entity e" +
"where e.name like ?1 " +
"and e.age like ?2 " +
"and e.street like ?3")
List<Item> findItemsFiltered(String name, String age, String street);
Così, quando diciamo che strada non è impostata, il Repository dovrebbe usare "%" per tornare tutti i risultati in cui gli altri criteri è la corrispondenza, ma la strada non è rilevante.
Quello sarebbe diventato imho disordinato. Invece probabilmente stai meglio con un 'Specification' che costruisce la query dinamica (che è ciò che fondamentalmente vuoi). Vedi anche http://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/ –
Si potrebbe anche voler controllare la guida di riferimento -> http: // docs. spring.io/spring-data/jpa/docs/current/reference/html/#specifications –
suona come una soluzione valida, grazie ancora :) Ho pensato solo per il caso d'uso comune "ripiega per selezionare tutto se no valore definito ", ci sarebbe un modo un po 'più semplice per farlo". Sarebbe bello avere qualcosa di semplice qui, pensando ad altre query che hanno una lista di valori filtro come 'where e.group IN? 3' (non puoi usare"% "qui). Ma bene, grazie finora. Se vuoi, crea una risposta dal tuo commento. Aspetterò ancora altre risposte, ma come detto, è una soluzione valida :-) – Dominik