Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

12.2.4. Configuration

12.2.4.1. Propriétés de configuration de Hibernate

Tableau 12.1. Propriétés

Nom de propriété Description
hibernate.dialect
Le nom de classe d'un org.hibernate.dialect.Dialect Hibernate. Permet à Hibernate de générer SQL optimisé pour une base de données relative particulière.
Dans la plupart des cas, Hibernate pourra choisir la bonne implémentation de org.hibernate.dialect.Dialect, selon les JDBC metadata renvoyées par le pilote JDBC.
hibernate.show_sql
Booléen. Écrit toutes les déclarations SQL à la console. C'est une alternative pour définir la catégorie du journal org.hibernate.SQL sur debug.
hibernate.format_sql
Booléen. Mettre en forme le SQL dans le journal et la console.
hibernate.default_schema
Qualifie les noms de tableaux non qualifiés avec le schéma/espace tableau donné dans le SQL généré.
hibernate.default_catalog
Qualifie les noms de tableaux non qualifiés avec le catalogue donné dans le SQL généré.
hibernate.session_factory_name
Le org.hibernate.SessionFactory sera automatiquement lié à ce nom dans JNDI après avoir été créé. Par exemple, jndi/composite/name.
hibernate.max_fetch_depth
Définit une "profondeur" maximum pour l'arborescence de récupération de la jointure externe pour les associations à fin unique (un-à-un, plusieurs-à-un). Un 0 désactive la récupération de jointure externe par défaut. La valeur recommandée se situe entre 0 et 3.
hibernate.default_batch_fetch_size
Définit une taille par défaut pour la récupération en lot d'associations de Hibernate. Les valeurs recommandées sont 4, 8, et 16.
hibernate.default_entity_mode
Définit un mode par défaut pour la réprésentation d'entité pour toutes les sessions ouvertes à partir de SessionFactory. Les valeurs comprennent : dynamic-map, dom4j, pojo.
hibernate.order_updates
Booléen. Oblige Hibernate à ordonner les mises à jour SQL par la valeur clé principale des éléments mis à jour. Cela se traduira en un nombre inférieur de blocages de transactions dans des systèmes hautement simultanés.
hibernate.generate_statistics
Booléen. Si autorisé, Hibernate va collecter les statistiques utiles pour le réglage de performance.
hibernate.use_identifier_rollback
Booléen. Si autorisé, les propriétés d'identifiant générées seront restaurées à leur valeur par défaut lorsque les objets sont supprimés.
hibernate.use_sql_comments
Booléen. Si activé, Hibernate génèrera des commentaires à l'intérieur de SQL, pour faciliter de débogage. La valeur par défaut est false.
hibernate.id.new_generator_mappings
Booléen. Cette propriété est appropriée lorsque @GeneratedValue est utilisée. Elle indique si les nouvelles implémentations IdentifierGenerator sont utilisées pour javax.persistence.GenerationType.AUTO, javax.persistence.GenerationType.TABLE et javax.persistence.GenerationType.SEQUENCE. La valeur par défaut est true.
hibernate.ejb.naming_strategy
Sélectionne l'implémentation org.hibernate.cfg.NamingStrategy avec Hibernate EntityManager. Cette classe est dépréciée et cette propriété n'est fournie que pour la compatibilité rétroactive. Cette propriété doit être utilisée avec hibernate.ejb.naming_strategy_delegator.
Si l'application n'utilise pas EntityManager, suivre les instructions suivantes pour configurer la NamingStrategy: Hibernate Reference Documentation - Implementing a Naming Strategy.
hibernate.ejb.naming_strategy_delegator
Indique une implémentation org.hibernate.cfg.naming.NamingStrategyDelegatator pour les objets de base de données et les éléments de schéma avec un Entity Manager Hibernate. Cette propriété peut comporter les valeurs suivantes.
  • org.hibernate.cfg.naming.LegacyNamingStrategyDelegator: c'est la valeur par défaut. Cette classe est dépréciée et n'est donnée que pour les cas de compatibilité rétroactive.
  • org.hibernate.cfg.naming.ImprovedNamingStrategyDelegator: c'est la valeur de choix. Elle génère un tableau par défaut et des noms de colonne qui s'accordent avec la spécification JPA. Permet la spécification des noms de classe de clés étrangères et d'entités. Cette classe n'affecte que les entités qui sont mappées par des annotations Java ou des descripteurs JPA XML. Les entités mappées utilisant hbm.xml ne sont pas affectées.
  • Si vous préférez, vous pouvez configurer une classe personnalisée qui implémente org.hibernate.cfg.naming.ImprovedNamingStrategyDelegator

Note

Cette propriété ne peut pas être utilisée avec hibernate.ejb.naming_strategy. C'est un remplacement temporaire de org.hibernate.cfg.NamingStrategy pour pallier à ses limitations. Nous envisageons une solution plus complète pour Hibernate 5.0 qui remplacera à la fois org.hibernate.cfg.NamingStrategy et org.hibernate.cfg.naming.NamingStrategyDelegator.
Si l'application n'utilise pas EntityManager, suivre les instructions suivantes pour configurer la NamingStrategy: Hibernate Reference Documentation - Implementing a Naming Strategy.

Important

Dans hibernate.id.new_generator_mappings, les nouvelles applications devront garder la valeur par défaut true. Les applications existantes qui utilisent Hibernate 3.3.x devront sans doute modifier cette valeur à false pour continuer à utiliser un objet de séquence ou un générateur basé-table et pour maintenir la compatibilité rétro-active.