Hallo Leute,
wir haben ein Projekt und wollen die Objekte (Java) über Hibernate in die Datenbank persistieren. Es scheint so zu sein, dass Hibernate eine Wunderwaffe und in der lage Objekte in die DB zu speichern und abzurufen ist, ohne dass man sich darüber, wie die Daten in der DB gespeichert werden, Gedanken machen müsste. Ich glaube das nicht! Aus meiner Sicht hängt es davon ab, wie die Daten später abgerufen werden eineseitz, wenn Schnelligkeit und Massendaten gefragt sind sowohl beim Speichern, als auch beim Auslesen.
Beispiel: Ich mache eine Applikation, die gleichzeitig für allas, was man in dieser Applikation macht einen sogenannen Audit-trail fährt. Das heißt, dass wir einen sogenannten ActivityLogger im Hingergrund fahern werden. Es ist ein Log, der registirert, was Erstellt, Gelöscht, Geändert, Angefasst, wer sich Eingeloggt, wer sich ausgeloggt hat, einfach ALLESS logt und buchstäblich chronologisch abspeichern soll.
Natürlich muss der Logger KAUM RESSOURCEN verbrauchen und muss alles schnelle abrufen können, wenn nötig.
ICh will diese Daten später abrufen und entsprechend analysisiern, wenn ich Wartungsarbeiten mache, etc... Wenn ich diesen Auddittrail-Tool irgendwann mal starte, um eine Analyse über die letztn Änderungen zu machen, erwarte ich eine Tabellarische Ansicht mit Spalten. Die Spalten wären TimeStamp, Context, Field, Module, User, Old Value, New value. Diese Felder hängen an einem Datensatz und brauchen nicht getrennt von einander gespeichert werden, in der DB.
Nun miene Befürchten. Ich glaube, dass HIbernate die Daten nich in iener einzigen Tabelle, sondern mehrere Tabellen aufbauen wird und erst beim Einlesen diese zu einem Datensatz, wie ich es brauche, zusammengeführt werden. Das wäre nicht OK.
Selbst, wenn es im Millisekundenbereich liegt, das erstellen von mehreren Tabellen für die Properties, anstatt alles in einer Tabelle zu speichern macht schon einen großen Unterschied im Punkto Performance. Außerdem, würde ich bei diesen besonders wichtigen Daten keine Chance haben, von aussen über SQL diese Daten verständlich abzufragen. (Das ist bei kritischen Daten immer nötig. Es kann nicht sein, dass ich von einem Framework abhängig bin.)
Daher die Frage: Kann ich für bestimmte Objektstrukturen in mienem JavaCode Hibernate vorgeben, wie er diese in die DB speichern soll? Wenn nicht, gibt es eine Jave-Objekt struktur, die Hibernate standardmäßig als eine einzige Tabelle speichern würde?
Danke für Eure Meinungen und Tipps.
|