Ouvrir la session dans le modèle de vue

Je vous pose cette question, étant donné que j'ai choisi de cadres de développement de la JPA (Hibernate mise en œuvre de), au Printemps et en <insert framework MVC ici - Struts 1, Struts 2, Spring MVC, Rayures...>.

J'ai pensé un peu à propos des relations dans mon entité de couche - par exemple, j'ai une commande de l'entité qui a de nombreuses lignes de commandes. J'ai mis en place mon application afin qu'elle avec impatience charge les lignes de commande pour chaque commande. Vous pensez que c'est une manière paresseuse pour obtenir autour de l'initialisation des problèmes que j'aimerais trouver, si je devais me définir le parcours de la stratégie de faux?

La façon dont je le vois, j'ai les options suivantes lors de la récupération des entités et de leurs associations:

  1. Utiliser l'ouverture de Session Dans une Vue de modèle pour créer la session sur chaque demande et de valider la transaction avant de retourner la réponse.
  2. Mettre en œuvre un DTO (Data Transfer Object) de la couche de telle façon que chaque requête DAO j'execute renvoie la initialisé correctement DTO pour mes fins. Je n'aime pas vraiment cette option parce que dans mon expérience, j'ai trouvé qu'il crée beaucoup de passe-partout de copier le code et devient malpropre à maintenir.
  3. Ne correspondent pas toutes les associations en APC de façon à ce que toutes les requêtes que j'execute renvoie uniquement les entités, je suis intéressé par cette aura probablement besoin de moi pour avoir des Otd de toute façon et sera une douleur à maintenir et je pense que de défaites le but d'avoir un ORM en premier lieu.
  4. Avec impatience chercher tous (ou la plupart des associations) - dans l'exemple ci-dessus, toujours récupérer toutes les lignes de commande quand j'ai récupérer une commande.

Donc ma question est de savoir quand et dans quelles circonstances utilisez-vous, laquelle de ces options? Avez-vous toujours coller avec une seule façon de faire?

Je voudrais demander à un collègue, mais je pense que même si je l'ai mentionné le terme "Open Session in View" je voudrais être accueillis avec des regards vides 🙁 Ce que je suis vraiment à la recherche de voici quelques conseils d'une personne âgée ou très développeur expérimenté.

Merci les gars!

source d'informationauteur JMM