Les classes peuvent être mises en correspondances avec des tables ou des vues. Les vues ayant de nombreuses contraintes et des fonctionnalités limitées (par, exemple elles n'ont ni clé primaire ni clés de référence), certaines vues ne peuvent pas être mises à jour, et les correspondances peuvent ne pas fonctionner correctement dans certains cas.
Certaines conditions doivent être remplies pour pouvoir générer une correspondance pour une table particulière :
La source Java peut être générée. Cela n'est pas possible par exemple lorsque la visibilité de la classe est private.
La classe est persistante.
Le mode de génération n'est pas défini à Générer un type de données abstrait.
Si la classe est une classe interne, elle doit être statique et avoir une visibilité public. Hibernate doit alors être en mesure de créer des instances de la classe.
Les options de correspondance de classe spécifiques à NHibernate sont définies dans l'onglet NHibernate de la feuille de propriétés d'une classe :
Option |
Description |
---|---|
Insertion dynamique |
Spécifie qu'une instruction INSERT SQL doit être générée lors de l'exécution et contiendra uniquement les colonnes dont les valeurs ne sont pas nulles. Balise Hibernate : dynamic-insert |
Modification dynamique |
Spécifie qu'une instruction UPDATE SQL doit être générée lors de l'exécution et contiendra uniquement les colonnes dont les valeurs ont été modifiées. Balise Hibernate : dynamic-update |
Sélection avant modification |
Spécifie que Hibernate ne doit jamais procéder à un SQL UPDATE à moins d'être certain qu'un objet soit effectivement modifié. Balise Hibernate : select-before-update |
Type de cascade par défaut |
Spécifie le style de cascade par défaut. Balise Hibernate : default-cascade |
Type d'accès par défaut |
Spécifie le type d'accès par défaut (champ ou propriété) Balise Hibernate : default-access |
Nom de proxy |
Spécifie une interface à utiliser pour l'initialisation de proxy à la demande. Balise Hibernate : proxy |
Taille de lot |
Spécifie une "taille de lot" pour la récupération des instances de cette classe par identifiant. Balise Hibernate : batch-size |
Vérification |
Spécifie une expression SQL utilisée pour générer une contrainte de vérification multiligne pour la génération automatique de schéma. Balise Hibernate : check |
Polymorphisme |
Spécifie si un polymorphisme de requête implicite ou explicite est utilisé. Balise Hibernate : polymorphism |
Nom du schéma |
Spécifie le nom du schéma de base de données. Balise Hibernate : schema |
Nom de catalogue |
Spécifie le nom du catalogue de base de données. Balise Hibernate : catalog |
ID de ligne |
Spécifie que Hibernate peut utiliser la colonne ROWID sur les bases de données qui la prennent en charge (par exemple, Oracle). Balise Hibernate : rowed |
Nom de classe persistante |
Spécifie une classe de persistance personnalisée. Balise Hibernate : persister |
A la demande |
Spécifie que la classe doit être à la demande. Balise Hibernate : lazy |
Modifiable |
Spécifie que les instances de la classe sont modifiables. Balise Hibernate : mutable |
Classe abstraite |
Spécifie que la classe est abstraite. Balise Hibernate : abstract |
Importation automatique |
Spécifie qu'un nom de classe non qualifié peut être utilisé dans une requête. Balise Hibernate : Auto-import |
Colonne discriminante |
Spécifie la colonne ou formule discriminante pour le comportement polymorphique dans une table par stratégie de correspondance hiérarchique. Balise Hibernate : discriminator |
Valeur discriminante |
Spécifie une valeur qui distingue les sous-classes individuelles, qui sont utilisées pour un comportement polymorphique. Balise Hibernate : discriminator-value |
Type discriminant |
Spécifie le type discriminant. Balise Hibernate : type |
Forcer Hibernate à utiliser un discriminant |
Force Hibernate à spécifier des valeurs discriminantes admises et ce, même lors de l'extraction de toutes les instances de la classe racine. Balise Hibernate : force |
Ne pas utiliser de discriminant dans insert |
Force Hibernate à ne pas inclure la colonne dans les SQL INSERT Balise Hibernate : insert |
Type de verrouillage optimiste |
Spécifie une stratégie de verrouillage optimiste. Balise Hibernate : optimistic-lock |
Nom de colonne (de verrouillage optimiste) |
Spécifie la colonne pour le verrouillage optimiste. Un champ est également généré si cette option est définie. Balise Hibernate : version/ timestamp |
Valeur non enregistrée (de verrouillage optimiste) |
Spécifie si une valeur non enregistrée est nulle ou indéfinie. Balise Hibernate : unsaved-value |