MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Esponi solo determinati campi durante la visualizzazione di elementi specifici con Spring Data?

Quando si utilizza Spring Data REST, ha qualcosa appositamente progettato per questo. Esiste la nozione di Proiezioni ed estratti con esso puoi specificare cosa e come vuoi restituirlo.

Per prima cosa devi creare un'interfaccia che contenga solo i campi che desideri.

@Projection(name="personSummary", types={Person.class})
public interface PersonSummary {
    String getEmail();
    String getId();
    String getName();
}

Quindi sul tuo PersonRepository aggiungi questo come predefinito da utilizzare (si applicherà solo ai metodi che restituiscono raccolte!).

@RepositoryRestResource(excerptProjection = PersonSummary.class)
public interface PersonRepository extends CrudRepository<Person, String> {}

Quindi quando esegui una query per una raccolta otterrai solo i campi come specificato nella proiezione e quando ottieni una singola istanza otterrai l'oggetto completo.