Il y a longtemps, je créais un mini ORM en utilisant la réflexion.
En lisant sur la réflexion, j'ai obtenu une réponse similaire à celle-ci :
Performances de Java Reflection
Ce qui est tout à fait logique et je quitte mon mini orm et aiguise mes touches CTRL+C, CTRL+V ( la librairie était destinée à éviter de devoir réécrire encore et encore les mêmes snippets pour différentes tables dans une application web sur laquelle je travaillais )
Des années plus tard, pour une raison dont je ne me souviens pas maintenant (et dont je ne veux pas me souvenir), je lisais (ou essayais de...) le code source d'Hibernate, car je voulais savoir s'ils utilisaient la POA pour générer du code à la volée et éviter la pénalité de réflexion, mais à ma grande surprise, tout ce que je voyais était de la pure réflexion.
Est-ce que cela signifie que le framework ORM le plus accepté, a fait exactement ce que des années auparavant m'ont découragé de poursuivre mes efforts naïfs ? :")
Ma question est la suivante : quelqu'un peut-il confirmer ma compréhension de l'implémentation d'Hibernate ? Génère-t-elle du bytecode à la volée pour améliorer les performances ? Ou est-ce que nous (lorsque nous l'utilisons) payons toujours la pénalité de réflexion (qui d'ailleurs, si la différence est de quelques ms, aucun d'entre nous ne l'a remarqué ni ne s'en est plaint).
Payons-nous la pénalité de réflexion ? Si c'est le cas, je pense que c'est ça vaut le coup ! !!
Regards.