MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Expor apenas determinados campos ao visualizar um item específico com Spring Data?


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.