Skip to content
hittepit edited this page Mar 18, 2014 · 2 revisions

Le but de ce test est de montrer certains aspects de l'utilisation de proxies par Hibernate, soit parce que la propriété est lazy-loadée, soit parce que load est utilisé.

Plusieurs aspects sont examinés dans be.fabrice.proxy.TestProxy:

  • pièges dans l'écriture de la méthode equals avec des proxies. Pour les besoins ce test, plusieurs classes sont définies (sans signification business malgré les apparences):
  • Travailleur qui est la classe de base des tests et qui possède trois références lazy vers les trois classes suivantes;
  • Employeur pour lequel la méthode equals est définie avec une comparaison de classe (getClass) et des attributs (ceci dit le equals ne va pas jusqu'à vérifier les propriétés puisqu'il s'arrête sur le getClass);
  • EmployeurPresqueCorrect où le getClass dans le equals a été modifié avec un instanceof, mais qui compare les attributs par accès direct;
  • EmployeurCorrect où la méthode equals est correcte dans ce cadre-ci (comparaison des classes avec instanceof et accès aux propriétés via les getters.
  • Dans tous les cas, des employeurs sont considérés comme égaux s'ils sont de la même classe et si leur nom est le même.
  • initialisation des proxies;
  • différences entre session.get et session.load.

Attention que le comportement des proxies peut être affecté par la librairie utilisée pour le proxying. Ici, c'est javassist qui est utilisé (par défaut dans cette version d'Hibernate).

Attention aussi qu'en debug, l'accès à certains éléments d'un proxy peut l'initialiser.

Clone this wiki locally