Ao usar o Spring Data REST ele tem algo especialmente projetado para isso. Existe a noção de projeções e trechos com ele você pode especificar o que e como deseja devolvê-lo.
Primeiro, você criaria uma interface que conteria apenas os campos desejados.
@Projection(name="personSummary", types={Person.class})
public interface PersonSummary {
String getEmail();
String getId();
String getName();
}
Em seguida, em seu
PersonRepository
adicione isso como o padrão a ser usado (será aplicado apenas a métodos que retornam coleções!). @RepositoryRestResource(excerptProjection = PersonSummary.class)
public interface PersonRepository extends CrudRepository<Person, String> {}
Então, ao fazer uma consulta para uma coleção, você obterá apenas os campos especificados na projeção e, ao obter uma única instância, obterá o objeto completo.