Hibernate.orgCommunity Documentation

HIBERNATE - Relational Persistence for Idiomatic Java

Hibernate Reference Documentation

3.6.10.Final

Legal Notice

February 8, 2012


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.1.1. Minimal architecture
2.1.2. Comprehensive architecture
2.1.3. Basic APIs
2.2. JMX-Integration
2.3. 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. Implementing a PersisterClassProvider
3.8. XML-Konfigurationsdatei
3.9. Java EE Application Server integration
3.9.1. Konfiguration der Transaktionsstrategie
3.9.2. JNDI-bound SessionFactory
3.9.3. Aktuelles Management des Sessionkontexts mit JTA
3.9.4. JMX-Deployment
4. Persistente Klassen
4.1. Ein einfaches POJO-Beispiel
4.1.1. Implementierung eines "No-Argument"-Konstruktors
4.1.2. Provide an identifier property
4.1.3. Prefer non-final classes (semi-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. Entity
5.1.2. Identifiers
5.1.3. Optimistic locking properties (optional)
5.1.4. Property
5.1.5. Embedded objects (aka components)
5.1.6. Inheritance strategy
5.1.7. Mapping one to one and one to many associations
5.1.8. Natural-id
5.1.9. Any
5.1.10. Properties
5.1.11. Some hbm.xml specificities
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. Generated properties
5.6. Column transformers: read and write expressions
5.7. Auxiliary database objects
6. Types
6.1. Value types
6.1.1. Basic value types
6.1.2. Composite types
6.1.3. Collection types
6.2. Entity types
6.3. Significance of type categories
6.4. Custom types
6.4.1. Custom types using org.hibernate.type.Type
6.4.2. Custom types using org.hibernate.usertype.UserType
6.4.3. Custom types using org.hibernate.usertype.CompositeUserType
6.5. Type registry
7. Collection mapping
7.1. Persistente Collections
7.2. How to map collections
7.2.1. Collection-Fremdschlüssel
7.2.2. Indizierte Collections
7.2.3. Collections of basic types and embeddable objects
7.3. Fortgeschrittene Collection-Mappings
7.3.1. Sortierte Collections
7.3.2. Bidirektionale Assoziationen
7.3.3. Bidirektionale Assoziationen mit indizierten Collections
7.3.4. Dreifache Assoziationen
7.3.5. Using an <idbag>
7.4. Collection-Beispiele
8. Assoziations-Mappings
8.1. Einführung
8.2. Unidirektionale Assoziationen
8.2.1. Many-to-one
8.2.2. One-to-one
8.2.3. One-to-many
8.3. Unidirektionale Assoziationen mit Verbundtabellen
8.3.1. One-to-many
8.3.2. Many-to-one
8.3.3. One-to-one
8.3.4. Many-to-many
8.4. Bidirektionale Assoziationen
8.4.1. one-to-many / many-to-one
8.4.2. One-to-one
8.5. Bidirektionale Assoziationen mit Verbundtabellen
8.5.1. one-to-many / many-to-one
8.5.2. "One-to-One"
8.5.3. Many-to-many
8.6. Komplexere Assoziations-Mappings
9. Komponenten-Mapping
9.1. Abhängige Objekte
9.2. Collections abhängiger Objekte
9.3. Komponenten als Map-Indizes
9.4. Komponenten als zusammengesetzte Bezeichner
9.5. Dynamische Komponenten
10. Inheritance mapping
10.1. The three strategies
10.1.1. "Tabelle-pro-Klasse"-Hierarchie
10.1.2. "Tabelle-pro-Subklasse"
10.1.3. Table per subclass: using a discriminator
10.1.4. Das Mischen der "Tabelle-pro-Klasse"-Hierarchie mit "Tabelle-pro-Subklasse"
10.1.5. "Tabelle-pro-konkrete-Klasse"
10.1.6. Table per concrete class using implicit polymorphism
10.1.7. Das Mischen impliziter Polymorphie mit anderen Vererbungsmappings
10.2. Einschränkungen
11. Das Arbeiten mit Objekten
11.1. Statusarten von Hibernate Objekten
11.2. Objekte persistent machen
11.3. Das Laden eines Objekts
11.4. Anfragen
11.4.1. Ausführen von Anfragen
11.4.2. Das Filtern von Collections
11.4.3. Kriterienanfragen
11.4.4. Anfragen in nativer SQL
11.5. Änderungen an persistenten Objekten vornehmen
11.6. Änderungen an abgesetzten Objekten
11.7. Automatische Statuserkennung
11.8. Das Löschen persistenter Objekte
11.9. Objektreplikation zwischen zwei verschiedenen Datenspeichern
11.10. Das Räumen der Session
11.11. Transitive Persistenz
11.12. Die Verwendung von Metadata
12. Read-only entities
12.1. Making persistent entities read-only
12.1.1. Entities of immutable classes
12.1.2. Loading persistent entities as read-only
12.1.3. Loading read-only entities from an HQL query/criteria
12.1.4. Making a persistent entity read-only
12.2. Read-only affect on property type
12.2.1. Simple properties
12.2.2. Unidirectional associations
12.2.3. Bidirectional associations
13. Transactions and Concurrency
13.1. Gültigkeitsbereiche von Session und Transaktion
13.1.1. Arbeitseinheit
13.1.2. Lange Konversationen
13.1.3. Die Berücksichtigung der Objektidentität
13.1.4. Gängige Probleme
13.2. Abgrenzung von Datenbanktransaktionen
13.2.1. Die nicht-gemanagte Umgebung
13.2.2. Die Verwendung von JTA
13.2.3. Der Umgang mit Ausnahmen
13.2.4. Transaktions-Timeout
13.3. Optimistische Nebenläufigkeitskontrolle
13.3.1. Kontrolle der Anwendungsversion
13.3.2. Erweiterte Session und automatische Versionierung
13.3.3. Abgesetzte Objekte und automatische Versionierung
13.3.4. Anpassung der automatischen Versionierung
13.4. Pessimistic locking
13.5. Connection release modes
14. Interzeptoren und Ereignisse
14.1. Interzeptoren
14.2. Ereignissystem
14.3. Deklarative Sicherheit in Hibernate
15. Batch-Verarbeitung
15.1. Batch-Einfügungen ("Batch-Inserts")
15.2. Batch-Aktualisierungen
15.3. Das Interface der StatelessSession
15.4. Vorgänge im DML-Stil
16. HQL: Die "Hibernate Query Language"
16.1. Beachtung der Groß- und Kleinschreibung
16.2. Die "from"-Klausel
16.3. Assoziationen und Verbünde ("Joins")
16.4. Formen der Verbundsyntax
16.5. Referring to identifier property
16.6. Die "select"-Klausel
16.7. Aggregierte Funktionen
16.8. Polymorphe Anfragen
16.9. Die "where"-Klausel
16.10. Ausdrücke
16.11. Die Reihenfolge nach Klausel
16.12. Die Gruppe nach Klausel
16.13. Unteranfragen
16.14. HQL-Beispiele
16.15. "Bulk"-Aktualisierung und Löschen
16.16. Tipps & Tricks
16.17. Komponenten
16.18. Die Syntax des "Row-Value-Constructors"
17. "Criteria Queries"
17.1. Creating a Criteria instance
17.2. Den Ergebnissatz eingrenzen
17.3. Die Ergebnisse ordnen
17.4. Assoziationen
17.5. Dynamischer Assoziationsabruf
17.6. Beispielanfragen
17.7. Projektionen, Aggregation und Gruppierung
17.8. Abgesetzte Anfragen und Unteranfragen
17.9. Anfrage über natürlichen Bezeichner
18. Native SQL
18.1. Using a SQLQuery
18.1.1. Skalare Anfragen
18.1.2. Entity-Anfragen
18.1.3. Umgang mit Assoziationen und Collections
18.1.4. Wiedergabe mehrerer Entities
18.1.5. Wiedergabe nicht gemanagter Entities
18.1.6. Umgang mit Vererbung
18.1.7. Parameter
18.2. Benannte SQL-Anfragen
18.2.1. Die Verwendung der Return-Property zur expliziten Spezifizierung von Spalten-/Aliasnamen
18.2.2. Die Verwendung gespeicherter Prozeduren für Anfragen
18.3. Anwenderspezifische SQL für "create" (erstellen), "update" (aktualisieren) und "delete" (löschen)
18.4. Angepasste SQL für das Laden
19. Das Filtern von Daten
19.1. Hibernate Filter
20. XML-Mapping
20.1. Das Arbeiten mit XML-Daten
20.1.1. Spezifizierung des gemeinsamen Mappens von XML und Klasse
20.1.2. Spezifizierung des Mappens von nur XML
20.2. XML-Mapping Metadaten
20.3. Manipulation von XML-Daten
21. Verbesserung der Performance
21.1. Abrufstrategien
21.1.1. Der Umgang mit "lazy"-Assoziationen
21.1.2. Abstimmung von Abrufstrategien
21.1.3. Einendige Assoziationsproxies
21.1.4. Initialisierung von Collections und Proxies
21.1.5. Die Verwendung von Stapelabruf ("Batch-Fetching")
21.1.6. Die Verwendung von "Subselect-Fetching"
21.1.7. Fetch profiles
21.1.8. Die Verwendung von "Lazy-Property-Fetching"
21.2. Das Cache der zweiten Ebene
21.2.1. Cache-Mappings
21.2.2. Strategie: "read only"
21.2.3. Strategie: "read/write"
21.2.4. Strategie: "nonstrict read/write"
21.2.5. Strategie: transaktional
21.2.6. Cache-provider/concurrency-strategy compatibility
21.3. Management der Caches
21.4. Das Anfragen-Cache
21.4.1. Enabling query caching
21.4.2. Query cache regions
21.5. Die Perfomance der Collection verstehen
21.5.1. Taxonomie
21.5.2. Listen, Maps, "idbags" und Sets sind die am effizientesten zu aktualisierenden Collections
21.5.3. Bags und Listen sind die effizientesten invertierten Collections
21.5.4. "One-Shot-Löschung"
21.6. Leistungsüberwachung
21.6.1. Die Überwachung einer SessionFactory
21.6.2. Metriken
22. Toolset-Handbuch
22.1. Automatische Schema-Generierung
22.1.1. Anpassung des Schemas
22.1.2. Start des Tools
22.1.3. Properties
22.1.4. Die Verwendung von Ant
22.1.5. Inkrementelle Schema-Aktualisierungen
22.1.6. Die Verwendung von Ant bei inkrementellen Schema-Aktualisierungen
22.1.7. Schema-Validierung
22.1.8. Die Verwendung von Ant zur Schema-Validierung
23. Additional modules
23.1. Bean Validation
23.1.1. Adding Bean Validation
23.1.2. Configuration
23.1.3. Catching violations
23.1.4. Database schema
23.2. Hibernate Search
23.2.1. Description
23.2.2. Integration with Hibernate Annotations
24. Beispiel: "Parent/Child"
24.1. Eine Anmerkung zu Collections
24.2. Bidirektionales "One-to-Many"
24.3. Cascading life cycle
24.4. Cascades and unsaved-value
24.5. Zusammenfassung
25. Beispiel: Web-Log Anwendung
25.1. Persistente Klassen
25.2. Hibernate-Mappings
25.3. Hibernate-Code
26. Beispiel: Verschiedene Mappings
26.1. Arbeitgeber/Arbeitnehmer
26.2. Autor/Werk
26.3. Kunde/Bestellung/Produkt
26.4. Verschiedene Beispiele von Mappings
26.4.1. Typisierte "One-to-One"-Assoziation
26.4.2. Beispiel für einen zusammengesetzten Schlüssel
26.4.3. "Many-to-Many" mit geteiltem Attribut des zusammengesetzten Schlüssels
26.4.4. Inhaltsbasierte Diskriminierung
26.4.5. Assoziationen bei wechselnden Schlüsseln
27. Optimale Verfahren
28. Database Portability Considerations
28.1. Portability Basics
28.2. Dialekt
28.3. Dialect resolution
28.4. Identifier generation
28.5. Database functions
28.6. Type mappings
References