QUERY DINAMICHE CON SPRING DATA E SPECIFICATION
Quante volte vi sarà capitato di sviluppare una API Rest nell'ecosistema Spring Boot e di dover esporre dati da un database, sia esso relazionale o meno, in modo pulito restituendo solo un subset delle occorrenze e filtrando per specifiche proprietà della risorsa interrogata? Ecco che le Specification rappresentano uno strumento utile in tutti questi casi in cui abbiamo la necessità di applicare dei filtri in modo condizionale su una determinata entità o su altre ad essa collegate, senza ricorrere a codici verbosi con metodi DAO dai nomi impronunciabili. Partiamo con l'esempio. Lo starter è la risorsa sulla quale costruire una ricerca filtrata: @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String firstname; private String lastname; private String address; private String email; // standard getters and setters } Fatto questo, procediamo con la creazione del repository. A differenza d