rendre Eclipse equals () / hashCode () utiliser les getters
Question
Est-il possible de définir par défaut Eclipse "Generate hashCode () and equals ()" utiliser des accesseurs au lieu de références de champs? - c'est à dire. puis-je obtenir le modèle utilisé?
J'utilise Hibernate et les objets envoyés par proxy ne sont que LazyLoaded lorsque des accesseurs sont utilisés, et non à partir de références de champs. C'est une gêne de le changer constamment.
Les solutions évidentes consistent à créer un modèle moi-même ou à écrire un plug-in, ce qui donne l'impression d'être excessif.
EDIT: On dirait que ceux-ci ne sont pas configurables. Je vais poser la question au groupe d’outils JBoss (ils créent des plugins pour Hibernate).
La solution
Ce n'est pas une solution, mais plutôt une solution de contournement - mais vous pouvez essayer de générer equals ()
, puis utilisez le refactoring 'encapsulate field' pour remplacer tous les accochs de champ afin d'utiliser des getters / setters (cela fonctionne également dans la classe ).
Autres conseils
Ohhhh, soyez prudent avec le proxy: http: / /blog.xebia.com/2008/03/08/advanced-hibernate-proxy-pitfalls/ ;)
Curieusement, ces modèles ne semblent pas du tout configurables.
Vous voudrez peut-être consulter cette question . Aussi, ce blog . Google va probablement vous en donner beaucoup plus.
J'ai utilisé un plug-in pour générer hashCode ()
et equals ()
avec apache commons lang