J'ai une application d'entreprise Java qui fournit un service Web, une couche de domaine et une couche de persistance d'hibernation. Dans ce cas particulier, il n'y a pas de grande différence (pour l'instant) entre les objets que j'envoie sur le réseau, les objets de domaine et les objets de persistance.Les classes de domaine reçoivent-elles généralement des annotations JPA ou JAXB ou les deux?
Actuellement, l'application utilise des DTO du côté de la persistance et annote les classes de domaine avec des annotations JAXB. Cependant, plus je lis et j'y pense, plus cela semble en arrière! (Sans compter qu'il y a beaucoup de code pour soutenir les va-et-vient entre les objets DTO et Domain). Il semble que la plupart des architectes suggèrent de mettre des annotations JPA sur le modèle de domaine et de créer des DTO pour envoyer des objets.
Dans mon cas, pourrais-je mettre les annotations JAXB et JPA (Hibernate) sur mes classes de domaine? L'idée de garder ma façade de service Web, mon domaine et ma persistance étroitement liés semble facile à maintenir, mais cela me préoccupe, car ils peuvent avoir besoin de changer dans le temps. Mais serait-il plus intelligent de créer un ensemble de classes DTO pour les services Web et d'ignorer les DTO pour la persistance?
Il est logique que tôt ou tard, vous aurez besoin de les séparer en couches. Mais dans un tout nouveau projet, cela permet de gagner beaucoup de temps pour les combiner. Bon à savoir, il n'y a pas de mauvais effets secondaires de faire cela. – HDave
Et là encore je les referme 2 ans plus tard car notre client webapp ne veut consommer que les données dont il a besoin, donc nous faisons des DTO (avec des annotations JAX-B) qui sont séparées de nos entités de domaine (JPA). – HDave