Hibernate.orgCommunity Documentation

HIBERNATE - Relational Persistence for Idiomatic Java

Hibernate Reference Documentation

3.5.6-Final

Legal Notice

September 15, 2010


Vorwort
1. Tutorial
1.1. Teil 1 - Die erste Hibernate Anwendung
1.1.1. Setup
1.1.2. Die erste Klasse
1.1.3. Die Mapping-Datei
1.1.4. Die Konfiguration von Hibernate
1.1.5. Building with Maven
1.1.6. Inbetriebnahme und Helfer
1.1.7. Das Laden und Speichern von Objekten
1.2. Teil 2 - Mapping-Assoziationen
1.2.1. Das Mappen der Personenklasse
1.2.2. Eine unidirektionale "Set"-basierte Assoziation
1.2.3. Das Bearbeiten der Assoziation
1.2.4. Collection von Werten
1.2.5. Bidirektionale Assoziationen
1.2.6. Die Bearbeitung bidirektionaler Verbindungen
1.3. Teil 3 - Die EventManager-Webanwendung
1.3.1. Das Schreiben des Grundservlets
1.3.2. Bearbeitung und Rendering
1.3.3. Deployment und Test
1.4. Zusammenfassung
2. Architektur
2.1. Übersicht
2.2. Instanzstatus
2.3. JMX-Integration
2.4. JCA-Support
2.5. Contextual sessions
3. Konfiguration
3.1. Programmatische Konfiguration
3.2. Erstellung einer SessionFactory
3.3. JDBC-Verbindungen
3.4. Optionale Properties der Konfiguration
3.4.1. SQL-Dialekte
3.4.2. "Outer-Join-Fetching"
3.4.3. Binäre Datenströme
3.4.4. Zweite Ebene und Anfragen-Cache
3.4.5. "Query Language Substitution"
3.4.6. Die Hibernate Statistik
3.5. Protokollierung
3.6. Implementing a NamingStrategy
3.7. XML-Konfigurationsdatei
3.8. Integration des J2EE-Applikationsservers
3.8.1. Konfiguration der Transaktionsstrategie
3.8.2. JNDI-bound SessionFactory
3.8.3. Aktuelles Management des Sessionkontexts mit JTA
3.8.4. JMX-Deployment
4. Persistente Klassen
4.1. Ein einfaches POJO-Beispiel
4.1.1. Implementierung eines "No-Argument"-Konstruktors
4.1.2. Bereitstellung einer Bezeichner-Property (optional)
4.1.3. Bevorzugung nicht-finaler Klassen (optional)
4.1.4. Zugriffsberechtigte und Mutatoren für persistente Felder deklarieren (optional)
4.2. Implementierung der Vererbung
4.3. Implementing equals() and hashCode()
4.4. Dynamische Modelle
4.5. Tuplizer
4.6. EntityNameResolvers
5. Grundlagen des O/R Mappings
5.1. Mapping-Deklaration
5.1.1. Doctype
5.1.2. Hibernate-mapping
5.1.3. Class
5.1.4. id
5.1.5. Enhanced identifier generators
5.1.6. Identifier generator optimization
5.1.7. composite-id
5.1.8. Discriminator
5.1.9. Version (optional)
5.1.10. Timestamp (optional)
5.1.11. Property
5.1.12. Many-to-one
5.1.13. One-to-one
5.1.14. Natural-id
5.1.15. Component and dynamic-component
5.1.16. Properties
5.1.17. Subclass
5.1.18. Joined-subclass
5.1.19. Union-subclass
5.1.20. Join
5.1.21. Key
5.1.22. Column and formula elements
5.1.23. Import
5.1.24. Any
5.2. Hibernate types
5.2.1. Entities und Werte
5.2.2. Grundlegende Wertetypen
5.2.3. Angepasste Wertetypen
5.3. Das mehrfache Mappen einer Klasse
5.4. SQL angeführte Bezeichner
5.5. Metadata-Alternativen
5.5.1. Die Verwendung von XDoclet-Markup
5.5.2. Die Verwendung von JDK 5.0 Annotationen
5.6. Generated properties
5.7. Column read and write expressions
5.8. Auxiliary database objects
6. Collection mapping
6.1. Persistente Collections
6.2. Collection-Mappings
6.2.1. Collection-Fremdschlüssel
6.2.2. Collection-Elemente
6.2.3. Indizierte Collections
6.2.4. Collections von Werten und "Many-to-Many"-Assoziationen
6.2.5. "One-to-Many"-Assoziationen
6.3. Fortgeschrittene Collection-Mappings
6.3.1. Sortierte Collections
6.3.2. Bidirektionale Assoziationen
6.3.3. Bidirektionale Assoziationen mit indizierten Collections
6.3.4. Dreifache Assoziationen
6.3.5. Using an <idbag>
6.4. Collection-Beispiele
7. Assoziations-Mappings
7.1. Einführung
7.2. Unidirektionale Assoziationen
7.2.1. Many-to-one
7.2.2. One-to-one
7.2.3. One-to-many
7.3. Unidirektionale Assoziationen mit Verbundtabellen
7.3.1. One-to-many
7.3.2. Many-to-one
7.3.3. One-to-one
7.3.4. Many-to-many
7.4. Bidirektionale Assoziationen
7.4.1. one-to-many / many-to-one
7.4.2. One-to-one
7.5. Bidirektionale Assoziationen mit Verbundtabellen
7.5.1. one-to-many / many-to-one
7.5.2. "One-to-One"
7.5.3. Many-to-many
7.6. Komplexere Assoziations-Mappings
8. Komponenten-Mapping
8.1. Abhängige Objekte
8.2. Collections abhängiger Objekte
8.3. Komponenten als Map-Indizes
8.4. Komponenten als zusammengesetzte Bezeichner
8.5. Dynamische Komponenten
9. Inheritance mapping
9.1. The three strategies
9.1.1. "Tabelle-pro-Klasse"-Hierarchie
9.1.2. "Tabelle-pro-Subklasse"
9.1.3. Table per subclass: using a discriminator
9.1.4. Das Mischen der "Tabelle-pro-Klasse"-Hierarchie mit "Tabelle-pro-Subklasse"
9.1.5. "Tabelle-pro-konkrete-Klasse"
9.1.6. Table per concrete class using implicit polymorphism
9.1.7. Das Mischen impliziter Polymorphie mit anderen Vererbungsmappings
9.2. Einschränkungen
10. Das Arbeiten mit Objekten
10.1. Statusarten von Hibernate Objekten
10.2. Objekte persistent machen
10.3. Das Laden eines Objekts
10.4. Anfragen
10.4.1. Ausführen von Anfragen
10.4.2. Das Filtern von Collections
10.4.3. Kriterienanfragen
10.4.4. Anfragen in nativer SQL
10.5. Änderungen an persistenten Objekten vornehmen
10.6. Änderungen an abgesetzten Objekten
10.7. Automatische Statuserkennung
10.8. Das Löschen persistenter Objekte
10.9. Objektreplikation zwischen zwei verschiedenen Datenspeichern
10.10. Das Räumen der Session
10.11. Transitive Persistenz
10.12. Die Verwendung von Metadata
11. Read-only entities
11.1. Making persistent entities read-only
11.1.1. Entities of immutable classes
11.1.2. Loading persistent entities as read-only
11.1.3. Loading read-only entities from an HQL query/criteria
11.1.4. Making a persistent entity read-only
11.2. Read-only affect on property type
11.2.1. Simple properties
11.2.2. Unidirectional associations
11.2.3. Bidirectional associations
12. Transactions and Concurrency
12.1. Gültigkeitsbereiche von Session und Transaktion
12.1.1. Arbeitseinheit
12.1.2. Lange Konversationen
12.1.3. Die Berücksichtigung der Objektidentität
12.1.4. Gängige Probleme
12.2. Abgrenzung von Datenbanktransaktionen
12.2.1. Die nicht-gemanagte Umgebung
12.2.2. Die Verwendung von JTA
12.2.3. Der Umgang mit Ausnahmen
12.2.4. Transaktions-Timeout
12.3. Optimistische Nebenläufigkeitskontrolle
12.3.1. Kontrolle der Anwendungsversion
12.3.2. Erweiterte Session und automatische Versionierung
12.3.3. Abgesetzte Objekte und automatische Versionierung
12.3.4. Anpassung der automatischen Versionierung
12.4. Pessimistic locking
12.5. Connection release modes
13. Interzeptoren und Ereignisse
13.1. Interzeptoren
13.2. Ereignissystem
13.3. Deklarative Sicherheit in Hibernate
14. Batch-Verarbeitung
14.1. Batch-Einfügungen ("Batch-Inserts")
14.2. Batch-Aktualisierungen
14.3. Das Interface der StatelessSession
14.4. Vorgänge im DML-Stil
15. HQL: Die "Hibernate Query Language"
15.1. Beachtung der Groß- und Kleinschreibung
15.2. Die "from"-Klausel
15.3. Assoziationen und Verbünde ("Joins")
15.4. Formen der Verbundsyntax
15.5. Referring to identifier property
15.6. Die "select"-Klausel
15.7. Aggregierte Funktionen
15.8. Polymorphe Anfragen
15.9. Die "where"-Klausel
15.10. Ausdrücke
15.11. Die Reihenfolge nach Klausel
15.12. Die Gruppe nach Klausel
15.13. Unteranfragen
15.14. HQL-Beispiele
15.15. "Bulk"-Aktualisierung und Löschen
15.16. Tipps & Tricks
15.17. Komponenten
15.18. Die Syntax des "Row-Value-Constructors"
16. "Criteria Queries"
16.1. Creating a Criteria instance
16.2. Den Ergebnissatz eingrenzen
16.3. Die Ergebnisse ordnen
16.4. Assoziationen
16.5. Dynamischer Assoziationsabruf
16.6. Beispielanfragen
16.7. Projektionen, Aggregation und Gruppierung
16.8. Abgesetzte Anfragen und Unteranfragen
16.9. Anfrage über natürlichen Bezeichner
17. Native SQL
17.1. Using a SQLQuery
17.1.1. Skalare Anfragen
17.1.2. Entity-Anfragen
17.1.3. Umgang mit Assoziationen und Collections
17.1.4. Wiedergabe mehrerer Entities
17.1.5. Wiedergabe nicht gemanagter Entities
17.1.6. Umgang mit Vererbung
17.1.7. Parameter
17.2. Benannte SQL-Anfragen
17.2.1. Die Verwendung der Return-Property zur expliziten Spezifizierung von Spalten-/Aliasnamen
17.2.2. Die Verwendung gespeicherter Prozeduren für Anfragen
17.3. Anwenderspezifische SQL für "create" (erstellen), "update" (aktualisieren) und "delete" (löschen)
17.4. Angepasste SQL für das Laden
18. Das Filtern von Daten
18.1. Hibernate Filter
19. XML-Mapping
19.1. Das Arbeiten mit XML-Daten
19.1.1. Spezifizierung des gemeinsamen Mappens von XML und Klasse
19.1.2. Spezifizierung des Mappens von nur XML
19.2. XML-Mapping Metadaten
19.3. Manipulation von XML-Daten
20. Verbesserung der Performance
20.1. Abrufstrategien
20.1.1. Der Umgang mit "lazy"-Assoziationen
20.1.2. Abstimmung von Abrufstrategien
20.1.3. Einendige Assoziationsproxies
20.1.4. Initialisierung von Collections und Proxies
20.1.5. Die Verwendung von Stapelabruf ("Batch-Fetching")
20.1.6. Die Verwendung von "Subselect-Fetching"
20.1.7. Fetch profiles
20.1.8. Die Verwendung von "Lazy-Property-Fetching"
20.2. Das Cache der zweiten Ebene
20.2.1. Cache-Mappings
20.2.2. Strategie: "read only"
20.2.3. Strategie: "read/write"
20.2.4. Strategie: "nonstrict read/write"
20.2.5. Strategie: transaktional
20.2.6. Cache-provider/concurrency-strategy compatibility
20.3. Management der Caches
20.4. Das Anfragen-Cache
20.4.1. Enabling query caching
20.4.2. Query cache regions
20.5. Die Perfomance der Collection verstehen
20.5.1. Taxonomie
20.5.2. Listen, Maps, "idbags" und Sets sind die am effizientesten zu aktualisierenden Collections
20.5.3. Bags und Listen sind die effizientesten invertierten Collections
20.5.4. "One-Shot-Löschung"
20.6. Leistungsüberwachung
20.6.1. Die Überwachung einer SessionFactory
20.6.2. Metriken
21. Toolset-Handbuch
21.1. Automatische Schema-Generierung
21.1.1. Anpassung des Schemas
21.1.2. Start des Tools
21.1.3. Properties
21.1.4. Die Verwendung von Ant
21.1.5. Inkrementelle Schema-Aktualisierungen
21.1.6. Die Verwendung von Ant bei inkrementellen Schema-Aktualisierungen
21.1.7. Schema-Validierung
21.1.8. Die Verwendung von Ant zur Schema-Validierung
22. Beispiel: "Parent/Child"
22.1. Eine Anmerkung zu Collections
22.2. Bidirektionales "One-to-Many"
22.3. Cascading life cycle
22.4. Cascades and unsaved-value
22.5. Zusammenfassung
23. Beispiel: Web-Log Anwendung
23.1. Persistente Klassen
23.2. Hibernate-Mappings
23.3. Hibernate-Code
24. Beispiel: Verschiedene Mappings
24.1. Arbeitgeber/Arbeitnehmer
24.2. Autor/Werk
24.3. Kunde/Bestellung/Produkt
24.4. Verschiedene Beispiele von Mappings
24.4.1. Typisierte "One-to-One"-Assoziation
24.4.2. Beispiel für einen zusammengesetzten Schlüssel
24.4.3. "Many-to-Many" mit geteiltem Attribut des zusammengesetzten Schlüssels
24.4.4. Inhaltsbasierte Diskriminierung
24.4.5. Assoziationen bei wechselnden Schlüsseln
25. Optimale Verfahren
26. Database Portability Considerations
26.1. Portability Basics
26.2. Dialekt
26.3. Dialect resolution
26.4. Identifier generation
26.5. Database functions
26.6. Type mappings
References