HIBERNATE - Persistence Relationnelle dans un Java standard

Documentation de référence d'Hibernate

2.1.8


Table des matières

Préface
1. Exemple simple utilisant Tomcat
1.1. Vos débuts avec Hibernate
1.2. La première classe persistante
1.3. Mapper le Chat
1.4. Jouer avec les chats
1.5. Conclusion
2. Architecture
2.1. Généralités
2.2. Integration JMX
2.3. Support JCA
3. Configuration de la SessionFactory
3.1. Configuration par programmation
3.2. Obtenir une SessionFactory
3.3. Connexion JDBC fournie par l'utilisateur
3.4. Connexions JDBC fournie par Hibernate
3.5. Propriétés de configuration optionnelles
3.5.1. Dialectes SQL
3.5.2. Chargement par Jointure Ouverte
3.5.3. Flux binaires
3.5.4. CacheProvider spécifique
3.5.5. Configuration de la stratégie transactionnelle
3.5.6. SessionFactory associée au JNDI
3.5.7. Substitution dans le langage de requêtage
3.6. Logguer
3.7. Implémenter une NamingStrategy
3.8. Fichier de configuration XML
4. Classes persistantes
4.1. Un exemple simple de POJO
4.1.1. Déclarer les accesseurs et modifieurs des attributs persistants
4.1.2. Implémenter un constructeur par défaut
4.1.3. Fournir une propriété d'indentifiant (optionnel)
4.1.4. Favoriser les classes non finales (optionnel)
4.2. Implémenter l'héritage
4.3. Implémenter equals() et hashCode()
4.4. Callbacks de cycle de vie
4.5. Callback de validation
4.6. Utiliser le marquage XDoclet
5. Mapping O/R basique
5.1. Déclaration de Mapping
5.1.1. Doctype
5.1.2. hibernate-mapping
5.1.3. class
5.1.4. id
5.1.4.1. generator
5.1.4.2. Algorithme Hi/Lo
5.1.4.3. UUID Algorithm
5.1.4.4. Colonne Identity et Sequences
5.1.4.5. Identifiants assignés
5.1.5. composite-id
5.1.6. discriminator
5.1.7. version (optionnel)
5.1.8. timestamp (optionnel)
5.1.9. property
5.1.10. many-to-one
5.1.11. one-to-one
5.1.12. component, dynamic-component
5.1.13. subclass
5.1.14. joined-subclass
5.1.15. map, set, list, bag
5.1.16. import
5.2. Types Hibernate
5.2.1. Entités et valeurs
5.2.2. Les types de valeurs basiques
5.2.3. Type persistant d'enumération
5.2.4. Types de valeurs personnalisés
5.2.5. Type de mappings "Any"
5.3. identificateur SQL mis entre guillemets
5.4. Fichiers de mapping modulaires
6. Mapping des Collections
6.1. Collections persistantes
6.2. Mapper une Collection
6.3. Collections de valeurs et associations Plusieurs-vers-Plusieurs
6.4. Associations Un-vers-Plusieurs
6.5. Initialisation tardive
6.6. Collections triées
6.7. Utiliser un <idbag>
6.8. Associations Bidirectionnelles
6.9. Associations ternaires
6.10. Associations hétérogènes
6.11. Exemples de collection
7. Mappings des composants
7.1. Objets dépendants
7.2. Collections d'objets dependants
7.3. Composants pour les indexes de Map
7.4. composants en tant qu'identifiants composés
7.5. Composants dynamiques
8. Mapping de l'héritage de classe
8.1. Les trois stratégies
8.2. Limitations
9. Manipuler les données persistantes
9.1. Création d'un objet persistant
9.2. Chargement d'un objet
9.3. Requêtage
9.3.1. Requêtes scalaires
9.3.2. L'interface de requêtage Query
9.3.3. Iteration scrollable
9.3.4. Filtrer les collections
9.3.5. Les requêtes par critères
9.3.6. Requêtes en SQL natif
9.4. Mise à jour des objets
9.4.1. Mise à jour dans la même session
9.4.2. Mise à jour d'objets détachés
9.4.3. Réassocier des objets détachés
9.5. Suppression d'objets persistants
9.6. Flush
9.7. Terminer une Session
9.7.1. Flusher la Session
9.7.2. Commit de la transaction de la base de données
9.7.3. Fermeture de la Session
9.8. Traitement des exceptions
9.9. Cycles de vie et graphes d'objets
9.10. Intercepteurs
9.11. API d'accès aux métadonnées
10. Transactions et accès concurrents
10.1. Configurations, Sessions et Fabriques (Factories)
10.2. Threads et connections
10.3. Comprendre l'identité d'un objet
10.4. Gestion de la concurrence par contrôle optimiste
10.4.1. Session longue avec versionnage automatique
10.4.2. Plusieurs sessions avec versionnage automatique
10.4.3. Contrôle de version de manière applicative
10.5. Déconnexion de Session
10.6. Vérouillage pessimiste
11. HQL: Langage de requêtage d'Hibernate
11.1. Sensibilité à la casse
11.2. La clause from
11.3. Associations et jointures
11.4. La clause select
11.5. Fonctions d'aggrégation
11.6. Requêtes polymorphiques
11.7. La clause where
11.8. Expressions
11.9. La clause order by
11.10. La clause group by
11.11. Sous requêtes
11.12. Exemples HQL
11.13. Trucs & Astuces
12. Requêtes par critères
12.1. Créer une instance de Criteria
12.2. Restriction du résultat
12.3. Trier les résultats
12.4. Associations
12.5. Peuplement d'associations de manière dynamique
12.6. Requête par l'exemple
13. Requêtes en sql natif
13.1. Créer une requête basée sur SQL
13.2. Alias et références de propriétés
13.3. Requêtes SQL nommées
14. Améliorer les performances
14.1. Comprendre les performances des Collections
14.1.1. Classification
14.1.2. Les lists, les maps et les sets sont les collections les plus efficaces pour la mise à jour
14.1.3. Les Bags et les lists sont les plus efficaces pour les collections inverse
14.1.4. Suppression en un coup
14.2. Proxy pour une Initialisation Tardive
14.3. Utiliser le batch fetching (chargement par batch)
14.4. Le cache de second niveau
14.4.1. Mapping de Cache
14.4.2. Strategie : lecture seule
14.4.3. Stratégie : lecture/écriture
14.4.4. Stratégie : lecture/écriture non stricte
14.4.5. Stratégie : transactionelle
14.5. Gérer le cache de la Session
14.6. Le cache de requêtes
15. Guide des outils
15.1. Génération de Schéma
15.1.1. Personnaliser le schéma
15.1.2. Exécuter l'outil
15.1.3. Propriétés
15.1.4. Utiliser Ant
15.1.5. Mises à jour incrémentales du schéma
15.1.6. Utiliser Ant pour des mises à jour de schéma par incrément
15.2. Génération de code
15.2.1. Le fichier de configuration (optionnel)
15.2.2. L'attribut meta
15.2.3. Générateur de Requêteur Basique (Basic Finder)
15.2.4. Renderer/Générateur basés sur Velocity
15.3. Génération des fichier de mapping
15.3.1. Exécuter l'outil
16. Exemple : Père/Fils
16.1. Une note à propos des collections
16.2. un-vers-plusieurs bidirectionnel
16.3. Cycle de vie en cascade
16.4. Utiliser update() en cascade
16.5. Conclusion
17. Exemple : Application de Weblog
17.1. Classes persistantes
17.2. Mappings Hibernate
17.3. Code Hibernate
18. Exemple : Quelques mappings
18.1. Employeur/Employé (Employer/Employee)
18.2. Auteur/Travail (Author/Work)
18.3. Client/Commande/Produit (Customer/Order/Product)
19. Meilleures pratiques