Hibernate Einsatzgebiet

Hibernate Einsatzgebiet

Der Einsatz von Hibernate empfiehlt sich, sobald Daten dauerhaft in einer Datenbank persistiert werden müssen. Da dies eine Anforderung an jede große bis sehr große Webanwendung ist, kann Hibernate generell für die Speicherung von Daten eingesetzt werden. In der Praxis werden dazu sogenannte DAO-Klassen1 erstellt, die Lese- und Schreibvorgänge übernehmen. In ihnen werden die gewünschten Daten mittels der Hibernate-API-Methoden „saveOrUpdate“ und „delete“ geschrieben. Die HSQL-API hingegen bietet Möglichkeiten, lesende Abfragen zu erstellen. Die erstellten DAOs werden wiederum von Service-Schichten über das Strategy-Pattern aufgerufen. Als Transportcontainer für die Daten dienen Model-klassen (siehe Kapitel 2.2.1.2). Diese beinhalten lediglich die entsprechenden Properties sowie jeweils eine Getter- und eine Setter-Methode für jede Property. Die folgende Klasse demonstriert eine Model-Klasse. Häufig werden diese Klassen auch als DTO (Data Transfer Object) oder Domain Object bezeichnet.

/**
 * Business-Objekt für den Benutzer. *
 * 
 * @author Fabian Rossbacher
 */
public class Benutzer {

	/**
	 * Die eindeutige ID des Benutzers
	 */
	private Long id;

	/** Das Passwort des Benutzers */
	private String passwort;
	
	/** Der Vorname des Benutzers */
	private String vorname;
	
	/** Der Nachname des Benutzers */
	private String nachname;
	
	/** * Die Email-Adresse des Benutzers */
	private String email;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getPasswort() {
		return passwort;
	}

	public void setPasswort(String passwort) {
		this.passwort = passwort;
	}
	
	// Weitere Getter/Setter
}


Abbildung 17: Benutzer-Objekt
Quelle: Eigene Darstellung

Die erstellten Domain-Objekte können Werte in der Oberfläche annehmen und diese durch die Service-Schicht bis hin zu den DAOs übertragen. Dieser Weg ist auch in der entgegengesetzten Richtung möglich. Die in der Oberfläche erstellten Domain-Objekte können durch den Service-Layer bis zur Persistierung übertragen werden. Abbildung 18 verdeutlicht das Schichtenmodell in einer J2EE-Anwendung.

Abbildung 18: Schichtenmodell in einer J2EE-Anwendung

Diese Art des Einsatzes von Domain-Objekten erspart überflüssigen
Code in den einzelnen Schichten. Darüber hinaus wird ein Standard für den
Transport von Daten definiert.