« Dis monsieur, ce sera quoi le server side de demain ?Symposium DNG, TechEd et PDC »

3 commentaires

Commentaire de: Alex [Visiteur]
Il faudra simplement que les développeurs d'Hibernate m'expliquent un jour ce qu'ils trouvent d'élégant dans l'implémentation d'un HibernateContext (Session) géré par un Servlet Filter

La meilleure raison, c'est pour pouvoir profiter du "lazy loading" au niveau de la vue(JSP).
Si on ne met pas une gestion de la session dans le filtre et qu'on essaye de parcourir une collection "lazy"(i.e. chargée à la demande) dans une JSP, on récupere une belle exception en plein dans la tête...
Donc même si c'est pas très beau, cà permet de profiter du chargement d'objet à la demande(lazy loading) dans les JSP.

La doc Hibernate en parle aussi un peu.
16.06.05 @ 19:22
Commentaire de: sami [Membre] Email
Déporter la couche d'accès aux données côté Web est un anti-pattern d'architecture. Que se passe t-il le jour où on décide de connecter un client Swing ou SWT ? C'est à l'utilisateur de compléter son graphe d'objet pour éviter de tomber sur une exception de Lazy Loading, pas à une servlet :-)
Mais ce n'est qu'un avis personnel ...
16.06.05 @ 20:53
Commentaire de: Anthony Patricio [Visiteur] · http://www.hibernate.org
bonjour, je suis l'auteur du livre Hibernate.
Merci de l'avoir et merci pour le commentaire positif.
Concernant le filtre de servlet. On ne peut pas dire que le filtre de servlet fasse partie de la vue... ce n'est pas vrai, le filtre de servlet joue le role d'intercepteur et en ce sens peut parfaitement prendre le role d'observateur dans un pattern observateur/observé, ce que je decris dans mon livre.
Pour autant, je rejoins complètement la remarque de sami, il est toujours préférable que le développeur sache charger son graphe d'objet use case par use case, c'est important pour les performances (éviter le problème du n+1 select).
Pour les environnements JTA, je vous conseille de regarder la nouvelle foncitonnalité sessionFactory.getCurrentSession().
Concernant cette remarque "il faut abolir les transactions longues, en tout cas via des locks pessimistes", biiipp, il faudra relire le chapitre. Les transaction bas niveau (bdd) longues sont une catastrophe et en ce sens tu as completement raison. Par contre ce que je decris dans le livre c'est une transaction applicative longue, qui ne laisse ni de transaction bdd ni de connexion bdd ouverte. Tout cela est géré grace à l'aspect cache de premier niveau qu'est la session. Moi je conseille de l'utiliser des qu'on ne fait pas de replication de session http et si on se sens capable de bien definir les transactions longues mais ça n'est que mon avis.

Merci encore pour vos remarques, n'hesitez pas si vous avez besoin d'infos.


20.06.05 @ 22:19

Laisser un commentaire


Votre adresse email ne sera pas révélée sur ce site.

Votre URL sera affichée.
(Les retours à la ligne deviennent des <br />)
(Nom, e-mail & site Web)
(Autoriser les utilisateurs à vous contacter par un formulaire de message (votre adresse email ne sera not révélée.))
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)