Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-ce une bonne idée d'utiliser Hibernate pour représenter les relations entre les tables ?

Hibernate a une courbe d'apprentissage abrupte, mais il présente également les avantages suivants :

  1. L'insertion/les mises à jour sont plus faciles grâce à la "vérification sale". Une fois que vous avez le service en place, vous pouvez facilement ajouter de nouveaux champs sans changer une ligne dans votre service. Il vous suffit d'ajouter de nouvelles colonnes et de les remplir et Hibernate s'occupera de la partie persistance.
  2. Hibernate peut résoudre la "mise à jour perdue" problème en raison de son contrôle optimiste de la concurrence de verrouillage.
  3. Les tests d'intégration sont plus faciles, car vous pouvez générer automatiquement le schéma pour votre base de données en mémoire (HSQLDB, H2, Derby)
  4. Il dispose d'un support de plug-in de mise en cache (via des fournisseurs de mise en cache tiers de 2e niveau), certains fournisseurs vous permettant d'avoir à la fois des caches "transactionnels" et "en cluster".
  5. Il dispose d'un support AUDIT intégré (Envers)

Il ne s'agit donc pas d'une solution de persistance "par défaut", car il existe des millions d'applications Web écrites en PHP sans cadre ORM qui fonctionnent avec succès en production.

Je pense qu'Hibernate a beaucoup plus de sens pour les applications d'entreprise où la mise en cache, l'audit, la fiabilité de la concurrence sont des exigences non fonctionnelles obligatoires.