J'ai trouvé JPA, ou semblables, n'encouragent pas le pattern DAO. Je ne sais pas, mais je me sens comme ça, surtout avec le serveur géré JTA gestionnaires.
Une fois les mains sur l'aide de DAO schéma, j'ai commencé à concevoir JPA application basée autour de ce modèle. Mais il ne rentre pas dans les, de l'OMI. J'ai tendance à perdre tout à fait, une des caractéristiques de la JPA et tous.
Eh bien, supposons que vous lancez une requête avec le verrouillage pessimiste et il a renvoyé une liste d'entités à partir d'une méthode DAO. À son retour, la transaction se termine et de verrouillage est allé (un cas avec le serveur géré JTA manager). Donc, pas de point, globalement parlant. Il y a des cas valides, bien que.
Un autre exemple est beaucoup plus trivial. Supposons que vous lancez une requête pour obtenir une certaine entité, qui a un chargement différé de un-à-plusieurs association avec une autre entité. Dès le retour à la méthode DAO, la transaction se termine. Le chargement paresseux ne fonctionne plus, vous obtenez tout simplement null
ou quelque chose. Pour faire face à cela nous charger manuellement avec impatience. nous faisons quelque chose comme a.getBList().size()
.
Ainsi, de l'OMI, de son mieux pour ne pas faire une DAO exclusivement, et de le faire dans votre entreprise, de haricots, de cette façon vous serez en mesure de profiter de ces fonctionnalités utiles. Ou ORM API peut être considéré comme un DAO/Données de la couche elle-même, sans doute. Donc, nous n'avons pas besoin de faire un autre.
Ce que vous les gens pensent à ce sujet?
Note: je ne dis pas, par tout moyen, que le DAO modèle est obsolète. En effet, il dépend d'un cas à l'autre.