2017-08-23 3 views
0

J'utilise actuellement mes entités directement en tant que types de réponse et demande des paramètres sur mes méthodes de contrôleur (par opposition aux DTO). Je souhaite filtrer certains champs des réponses, est-il préférable d'annoter ces champs dans ma classe Entité avec @JsonIgnore (encombrant ainsi mon modèle) ou de créer un DTO spécifiquement pour les champs requis. Quelle approche est considérée meilleure du point de vue de la conception?Spring MVC - Contrôle des champs d'entité qui sont sérialisés

Répondre

1

Il est préférable de créer DTO. Raison pour cela est très simple, si vous retournez entité vous pouvez extraire beaucoup de données de la base de données (en fonction de votre annotation JPA - @Lazy, @Eager annotation) et si vous retournez DTO, vous pouvez toujours retourner uniquement les données dont vous avez besoin. L'annotation @JsonIgnore exclura toujours la propriété de la sérialisation, mais parfois vous voulez cette propriété (pour une requête spécifique) et ensuite vous êtes en difficulté. C'est une situation simple où DTO peut vous aider, parce que vous pouvez le créer comme vous voulez, quels champs vous voulez.