MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

N'exposer que certains champs lors de l'affichage d'un élément spécifique avec Spring Data ?

Lorsque vous utilisez Spring Data REST, il a quelque chose de spécialement conçu pour cela. Il y a la notion de Projections et extraits avec lui, vous pouvez spécifier quoi et comment vous voulez le retourner.

Vous devez d'abord créer une interface qui ne contiendrait que les champs que vous souhaitez.

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

Puis sur votre PersonRepository ajoutez ceci comme valeur par défaut à utiliser (ne s'appliquera qu'aux méthodes renvoyant des collections !).

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

Ensuite, lorsque vous effectuez une requête pour une collection, vous n'obtiendrez que les champs spécifiés dans la projection et lors de l'obtention d'une seule instance, vous obtiendrez l'objet complet.