Mappage des propriétés calculées avec JPA et Hibernate
Arrière-plan :
Supposons que vous ayez un Java bean avec une propriété qui n'est pas directement mappée à une colonne de base de données. Au lieu de cela, vous souhaitez qu'il soit calculé par la base de données à l'aide d'une opération telle que COUNT(). Vous cherchez un moyen de mapper cette propriété sans recourir à HQL ou à l'API Criteria.
Solution utilisant la @Formula d'Hibernate :
JPA ne prend pas directement en charge les propriétés dérivées. Cependant, Hibernate propose l'annotation @Formula comme solution. À l'aide de cette annotation, vous pouvez spécifier une formule pour la propriété, qui peut inclure des fragments SQL ou des requêtes complexes :
@Formula("COUNT(childColumns)") private int childCount;
Exemples de formules :
@Formula("PRICE*1.155") private float finalPrice;
@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)") private Date firstOrderDate;
Avantages de @Formula :
Ressources supplémentaires :
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!