Les propriétés générées sont des propriétés dont les valeurs sont générées par la base de données. Typiquement, les applications
Hibernate avaient besoin d'invoquer refresh
sur les instances qui contenaient des propriétés pour lesquelles la base de données générait des valeurs. Marquer les propriétés
comme générées permet à l'application de déléguer cette responsabilité à Hibernate. Principalement, à chaque fois qu'Hibernate
réalise une insertion ou une mise à jour en base de données pour une entité marquée comme telle, cela provoque immédiatement
un select pour récupérer les valeurs générées.
Les propriétés marquées comme générées doivent de plus ne pas être insérables et modifiables Seuls Section 5.1.9, « version (optionnel) », Section 5.1.10, « timestamp (optionnel) », et Section 5.1.11, « property » peuvent être marqués comme générées.
never
(par défaut) - indique la valeur de la propriété n'est pas générée dans la base de données.
insert
- indique que la valeur de la propriété donnée est générée à l'insertion mais pas lors des futures mises à jour de l'enregistrement.
Les colonnes de type "date de création" sont le cas d'utilisation typique de cette option. Notez que même les propriétés Section 5.1.9, « version (optionnel) » et Section 5.1.10, « timestamp (optionnel) » peuvent être déclarées comme générées, cette option n'est pas disponible à cet endroit...
always
- indique que la valeur de la propriété est générée à l'insert comme aux updates.