-
Code source Hibernate
Bonjour amis développeurs Java
Je voudrais comprendre comment fonctionne le code d'Hibernate.
En particulier, comment fait-il pour traiter les annotations et dans quelles circonstances utilise-t-il de la proxyfication ?
Question subsidiaire : Si je voulais mettre un web service à la place d'une base de données, que faudrait-il modifier dans le code ?
Tout éclaircissement serait vivement apprécié :)
-
Bonjour,
Réponse courte: via la Reflection, ton API/framework (cf: ici Hibernate) va analyser les annotations de ton code source et effectuer des opérations en conséquence.
Pour te citer un exemple, quand tu indiques un objet en paramètre d'une méthode Hibernate, ce dernier connait la table et les champs de cette table lisant les annotations que tu as laissé sur ton objet, il va donc générer des requêtes SQL à partir de ces informations.
Pour ta question subsidiaire, il n'y a pas vraiment de lien direct entre un service web et une base de données, mais en gros si tu veux déléguer la partie liée aux traitement de ta base de données à une autre couche (c'est que l'on fait généralement dans une architecture orienté service SOA, ou "microservice"), tu vas remplacer toutes tes opérations ayant un lien avec la base de données par des appels de service web. Dit comme ça tu peux ne pas en voir l'intérêt, mais si par exemple toi entreprise A ne veut pas exposer ta base de données (PostgreSQL/Oracle/SQL Server etc) à entreprise B, alors tu ne vas exposer que certaines fonctionnalités via ce service web.
Cordialement,
-
Oui enfin, pour la question subsidiaire, hibernate mappe du relationnel vers de l'objet. Un Webservice n'étant pas du relationnel, on ne vois pas trop comment tu pourrais mettre ça comme source dans hibernate. Sans parler du fait qu'il te faudrait des webservice implémentant les transaction distribuées ce qui n'est pas le cas de la majorité des webservices que tu trouvera.