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.