Hibernate ist ein ORM-Tool (Object Relational Mapping). Hauptzweck ist die Übersetzung von Konzepten aus der objektorientierten Programmierung, z. B. Klassen, Vererbung und Felder, in Konzepte, die in relationalen Datenbanken wie Tabellen, Zeilen und Spalten verwendet werden.
Zum Beispiel entspricht eine Klasse einer Datenbanktabelle, ein Objekt (Instanz einer Klasse) entspricht einer Datenbankzeile und ein Feld entspricht einer Datenbankspalte.
Der Begriff "object/relational mismatch" bezieht sich auf die Tatsache, dass es keine klare Möglichkeit gibt, alle Konzepte von der objektorientierten Programmierung auf relationale Datenbankkonzepte und umgekehrt zu übertragen. Hibernate versucht, dieses Problem zu lösen.
Zum Beispiel, wie übersetzt man Vererbung in relationale Datenbankkonzepte? Es gibt keine Vererbung in einer relationalen Datenbank, daher muss ein Weg gefunden werden, um dies in der Datenbank darzustellen. Hibernate hat verschiedene Möglichkeiten, zum Beispiel eine Tabelle für die Klassenhierarchie mit einer Diskriminatorspalte zu haben, um zu bestimmen, zu welcher Unterklasse eine Zeile gehört, oder eine Tabelle pro Unterklasse zu haben.
Ebenso gibt es Konzepte in einer relationalen Datenbank, die nicht leicht in objektorientierte Programmierkonzepte übersetzt werden können.
Mögliche Duplikate von [Was ist ein Object-Relational Mapping Framework?] (Http://StackOverflow.com/Questions/1152299/what-is-an-object-relational-mapping-framework) –
Nein, es ist kein Duplikat Wie in dieser Frage hat niemand über Object Relational Mismatch diskutiert. Ich habe Objekt-Relationales Mapping von dort selbst gelesen, aber ich hatte Verwirrung in objektrelationaler Nichtübereinstimmung, über die niemand dort diskutiert hat. –