Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist es eine gute Idee, Hibernate zur Darstellung von Tabellenbeziehungen zu verwenden?

Hibernate hat eine steile Lernkurve, aber auch die folgenden Vorteile:

  1. Einfügen/Updates sind aufgrund von "Dirty Checking" einfacher. Sobald Sie den Dienst eingerichtet haben, können Sie ganz einfach neue Felder hinzufügen, ohne eine Zeile in Ihrem Dienst zu ändern. Sie müssen nur neue Spalten hinzufügen und diese füllen, und Hibernate kümmert sich um den Persistenzteil.
  2. Hibernate kann das "verlorenes Update" lösen Problem wegen seiner optimistischen Sperrparallelitätssteuerung.
  3. Integrationstests sind einfacher, da Sie das Schema automatisch für Ihre In-Memory-Datenbank (HSQLDB, H2, Derby) generieren können
  4. Es hat eine Caching-Plug-In-Unterstützung (über Drittanbieter-Caching-Anbieter der zweiten Ebene), einige Anbieter ermöglichen Ihnen sowohl "transaktionale" als auch "geclusterte" Caches.
  5. Es hat eine eingebaute AUDIT-Unterstützung (Envers)

Es handelt sich also nicht um eine „Standard“-Persistenzlösung, da es Millionen von in PHP geschriebenen Webanwendungen ohne ORM-Framework gibt, die erfolgreich in der Produktion ausgeführt werden.

Ich denke, Hibernate ist viel sinnvoller für Unternehmensanwendungen, bei denen Caching, Auditing und Gleichzeitigkeitszuverlässigkeit obligatorische nichtfunktionale Anforderungen sind.