Vor- und Nachteile von Hibernate 4

Was ist neu?

Michael Plöd


Mit Sicherheit kann man feststellen, dass das Hiber­nate-Team in den eben angesprochenen sieben Jahren alles andere als untätig war. So entstanden in dieser Zeit zahlreiche Zusatzmodule wie die Lucene-Integration Hibernate Search, die Unterstützung für Sharding mit Hibernate Shards, die Referenzimplementierung für Bean Validation mit Hibernate Validator oder das Versionierungsmodul Envers. Im Bereich des Kerns von Hibernate fanden allerdings eher konservative Änderungen statt, die man als „Produktpflege“ bezeichnen kann. An dieser Stelle setzt Hibernate 4 an, indem zahlreiche Interna aufgeräumt und einige neue Features implementiert wurden. Zu den prominenten neuen Funktionen zählt die Unterstützung von Mandantenfähigkeit („Multi-Tenancy Support“) und das in Version 4.1 hinzugekommene API für das Laden einer Entität über natürliche Schlüssel. Eine weitere Neuerung stellt die Service Registry dar, die es Entwicklern ermöglicht, Standarddienste wie zum Beispiel das Handling von JDBC Connections oder von Transaktionen zu ändern oder gänzlich neu zu implementieren. Des Weiteren besteht die Möglichkeit, eigene Dienste in der Service Registry anzumelden.

Zu den internen Änderungen zählt die Trennung zwischen API- und Implementierungsklassen, das Aufräumen veralteter Methoden und Klassen sowie verbessertes Logging mit Unterstützung für Internationalisierung und Message-Codes. Des Weiteren wurde das in Version 3.x optionale Modul Hibernate Annotations in den Kern von Hibernate überführt, sodass diese Abhängigkeit künftig nicht mehr explizit gepflegt werden muss. In diesem Zug wurde mit Version 4.1 der Hibernate-Kern von hibernate-core auf hibernate-orm umbenannt. Dies ist künftig beim Pflegen von Abhängigkeiten mit Maven zu berücksichtigen.

Mandantenunterstützung

Anwendungen, die mehrere Mandanten unterstützen müssen, bewerkstelligen dies in der Regel auf drei unterschiedliche Herangehensweisen. So besteht die Möglichkeit, jeden Mandanten in einer eigenen physischen Datenbankinstanz zu beherbergen. Die nächste Option sind getrennte Schemata innerhalb einer einzigen physischen Datenbankinstanz. Abschließend gibt es noch partitionierte Daten als letzte Strategie. Bei dieser werden alle Daten der Mandanten innerhalb einer Instanz und einem Schema in den gleichen Tabellen vorgehalten und anhand einer Diskriminator-Spalte voneinander getrennt. Unterstützung für letztere Art von Mandantenfähigkeit besteht bereits seit Hibernate 3.x durch Hibernate Shards oder die Verwen...

Vor- und Nachteile von Hibernate 4

Was ist neu?

Michael Plöd


Mit Sicherheit kann man feststellen, dass das Hiber­nate-Team in den eben angesprochenen sieben Jahren alles andere als untätig war. So entstanden in dieser Zeit zahlreiche Zusatzmodule wie die Lucene-Integration Hibernate Search, die Unterstützung für Sharding mit Hibernate Shards, die Referenzimplementierung für Bean Validation mit Hibernate Validator oder das Versionierungsmodul Envers. Im Bereich des Kerns von Hibernate fanden allerdings eher konservative Änderungen statt, die man als „Produktpflege“ bezeichnen kann. An dieser Stelle setzt Hibernate 4 an, indem zahlreiche Interna aufgeräumt und einige neue Features implementiert wurden. Zu den prominenten neuen Funktionen zählt die Unterstützung von Mandantenfähigkeit („Multi-Tenancy Support“) und das in Version 4.1 hinzugekommene API für das Laden einer Entität über natürliche Schlüssel. Eine weitere Neuerung stellt die Service Registry dar, die es Entwicklern ermöglicht, Standarddienste wie zum Beispiel das Handling von JDBC Connections oder von Transaktionen zu ändern oder gänzlich neu zu implementieren. Des Weiteren besteht die Möglichkeit, eigene Dienste in der Service Registry anzumelden.

Zu den internen Änderungen zählt die Trennung zwischen API- und Implementierungsklassen, das Aufräumen veralteter Methoden und Klassen sowie verbessertes Logging mit Unterstützung für Internationalisierung und Message-Codes. Des Weiteren wurde das in Version 3.x optionale Modul Hibernate Annotations in den Kern von Hibernate überführt, sodass diese Abhängigkeit künftig nicht mehr explizit gepflegt werden muss. In diesem Zug wurde mit Version 4.1 der Hibernate-Kern von hibernate-core auf hibernate-orm umbenannt. Dies ist künftig beim Pflegen von Abhängigkeiten mit Maven zu berücksichtigen.

Mandantenunterstützung

Anwendungen, die mehrere Mandanten unterstützen müssen, bewerkstelligen dies in der Regel auf drei unterschiedliche Herangehensweisen. So besteht die Möglichkeit, jeden Mandanten in einer eigenen physischen Datenbankinstanz zu beherbergen. Die nächste Option sind getrennte Schemata innerhalb einer einzigen physischen Datenbankinstanz. Abschließend gibt es noch partitionierte Daten als letzte Strategie. Bei dieser werden alle Daten der Mandanten innerhalb einer Instanz und einem Schema in den gleichen Tabellen vorgehalten und anhand einer Diskriminator-Spalte voneinander getrennt. Unterstützung für letztere Art von Mandantenfähigkeit besteht bereits seit Hibernate 3.x durch Hibernate Shards oder die Verwen...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang