Définition des correspondances de classe

Il existe deux types de classes dans NHibernate :

NHibernate utilise fichiers de correspondances XML pour définir les correspondances des métadonnées. Chaque fichier de correspondance peut contenir les métadonnées d'une ou de plusieurs classes. PowerAMC utilise les stratégies de regroupement suivantes :

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 :

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