J'ai certains objets Java capables de persistance avec tous les @annotations dans mon application web. Tous ces objets résident dans une couche de données. Est-ce une bonne pratique d'utiliser ces objets de persistance comme objets de transfert de données? Par exemple, si je souhaite renvoyer les données extraites du magasin de données, devrais-je renvoyer directement ces objets de persistance ou dois-je copier manuellement les données dans un DTO intermédiaire et les renvoyer à d'autres couches? Quelle approche suggérez-vous?Entités de persistance en tant qu'objets de transfert de données
Répondre
Je dirais qu'il est OK pour le faire (en fait le principal avantage de ces ORM étaient d'utiliser ces objets de domaine dans différentes couches w/o ayant DTO inutiles) si vous suivez les directives suivantes:
- Vous ne prolongez pas les limites de session, c'est-à-dire que les modifications liées à la base de données doivent toujours être effectuées à l'aide de la couche d'accès aux données que vous avez définie.
- Toutes les données dont vous avez besoin dans une autre couche (couches au-dessus du calque d'accès aux données comme Couche logique et couche de présentation) sont pré-remplies dans ces objets sinon vous obtiendrez des exceptions selon le comportement ORM.
- Ne pas étendre les limites de session pour résoudre le problème mentionné au numéro 2
Je n'ai jamais eu besoin du niveau d'abstraction supplémentaire fourni en copiant l'instance de persistance dans une classe DTO différente.
Si vous êtes absolument certain qu'aucune copie ne se retrouvera dans le stockage de session ou ne sera conservée/migrée vers une autre instance/quelque chose, il n'est pas nécessaire de le faire.
Si vous avez besoin de garder ces objets sur plusieurs sessions/demandes, alors c'est logique. Un autre cas d'utilisation est lorsque vous devez découpler très login et la couche de persistance (c'est-à-dire pour permuter différentes couches de persistance) alors le couplage à travers les annotations pourrait être gênant.
- 1. Transfert Bluetooth pour les entités de données de base
- 2. transfert de données en vb6
- 3. Entités du modèle de données de l'entité de retour en tant que données JSON
- 4. transfert de fichiers en tant que service Web en j2se
- 5. Les données de base peuvent-elles utiliser Google Docs en tant que magasin de persistance?
- 6. Transfert de données en vrac via WebService
- 7. sécurisé transfert de données json?
- 8. Transfert d'objets de données LINQ
- 9. Méthode de transfert de données avec bookmarklet
- 10. Transfert de données XML de SQL à
- 11. Modèle d'objet de transfert de données?
- 12. Transfert de données de JavaScript à PHP
- 13. android taux de transfert de données
- 14. Exposer des entités d'infrastructure en tant que propriétés sur ViewModel pour la liaison de données MVVM
- 15. créer automatiquement les entités de base de données
- 16. Délai de transfert UART de transfert série
- 17. Persistance Java dans la base de données
- 18. Persistance Java, communications entre entités db et autres modèles
- 19. Transfert de données volumineux à l'aide de WCF
- 20. Transfert de données iPhone vers PC
- 21. Transfert de données AJAX et PHP
- 22. Entités LINQ en tant qu'objets métier - pro/non
- 23. Persistance des ressources de fichiers en PHP
- 24. transfert de fichier en flex
- 25. Est-ce qu'un "type de transfert de données" est identique à un "objet de transfert de données"?
- 26. Transfert de données vers un autre ordinateur en C#
- 27. Transfert de données en utilisant XMPP - des raisons pourquoi pas?
- 28. en développement pour android, transfert de données sécurisé meilleures pratiques
- 29. ASP.NET MVC ajax - transfert de données
- 30. Transfert de données MySQL vers SQL Server
+1 bien dit. C'est exactement ainsi que nous les utilisons dans notre produit. –