Maison > Java > javaDidacticiel > Comment les propriétés calculées de la carte d'annotation @Formula d'Hibernate dans JPA ?

Comment les propriétés calculées de la carte d'annotation @Formula d'Hibernate dans JPA ?

Susan Sarandon
Libérer: 2024-11-17 17:02:02
original
272 Les gens l'ont consulté

How Can Hibernate's @Formula Annotation Map Calculated Properties in JPA?

Mappage des propriétés calculées dans JPA avec l'annotation @Formula d'Hibernate

Dans les entités Java Persistence API (JPA), les propriétés calculées représentent des valeurs dérivées d'autres propriétés d'entité ou calculs de base de données. Ces propriétés ne sont pas mappées aux colonnes de la base de données mais peuvent être récupérées ou mises à jour à la demande. Hibernate propose l'annotation @Formula pour mapper sans effort les propriétés calculées au sein de vos entités JPA.

Pour utiliser l'annotation @Formula, appliquez-la simplement à la propriété calculée au sein de votre entité. L'annotation accepte un fragment SQL qui spécifie la logique de calcul. Par exemple, si vous disposez d'une propriété « childCount » qui doit être calculée à l'aide d'une fonction COUNT() de base de données, vous pouvez la définir comme suit :

@Formula("COUNT(SELECT 1 FROM Child WHERE Child.parentId = id)")
private int childCount;
Copier après la connexion

Dans cet exemple, le fragment SQL COUNT(SELECT 1 FROM Child WHERE Child.parentId = id) calcule le nombre d'entités enfants associées à l'entité actuelle.

L'annotation @Formula offre de la flexibilité en prenant en charge des requêtes plus complexes. Par exemple, vous pouvez calculer la date minimale de création des commandes associées à un client :

@Formula("(SELECT MIN(o.creation_date) FROM Orders o WHERE o.customer_id = id)")
private Date firstOrderDate;
Copier après la connexion

Il est important de noter que l'annotation @Formula est une extension spécifique à Hibernate. Bien qu'il permette un mappage efficace des propriétés calculées, il n'est disponible que lorsque vous utilisez Hibernate comme fournisseur de persistance JPA.

Pour en savoir plus sur le sujet, consultez les ressources suivantes :

  • [Hibernate Propriétés dérivées - Performances et portabilité](https://vladmihalcea.com/hibernate-derived-properties-performance-and-portability/)
  • [Documentation de base Hibernate - Éléments de colonne et de formule](https:// docs.jboss.org/hibernate/core/5.5/manual/en-US/html_single/#d0e2491)
  • [Documentation des annotations Hibernate - Formule](https://docs.jboss.org/hibernate/stable /annotations/reference/fr/html_single/#d0e3346)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal