Heim >Java >javaLernprogramm >Wie kann ich mithilfe von @Formula berechnete Eigenschaften in JPA und Hibernate zuordnen?

Wie kann ich mithilfe von @Formula berechnete Eigenschaften in JPA und Hibernate zuordnen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-02 11:59:13773Durchsuche

How Can I Map Calculated Properties in JPA and Hibernate Using @Formula?

Berechnete Eigenschaften mit JPA und Hibernate zuordnen: Eine Anleitung

Viele Java Beans haben Eigenschaften, die nicht explizit in Datenbanktabellen dargestellt werden. Bei diesen Eigenschaften kann es sich um berechnete Werte handeln, beispielsweise um die Anzahl der untergeordneten Entitäten, die einer übergeordneten Entität zugeordnet sind.

Traditionell wurden solche Eigenschaften mithilfe von HQL oder der Kriterien-API festgelegt. Die @Formula-Annotation in Hibernate bietet jedoch einen effizienteren und deklarativeren Ansatz.

Verwendung der @Formula-Annotation

Mit der @Formula-Annotation können Sie ein SQL-Fragment angeben das den Wert einer Eigenschaft berechnet:

@Formula("PRICE*1.155")
private float finalPrice;

In diesem Beispiel wird die Eigenschaft finalPrice berechnet durch Multiplizieren der Spalte PRICE mit 1,155.

Komplexe Abfragen und abgeleitete Tabellen

@Formula kann auch komplexe Abfragen mit mehreren Tabellen verarbeiten:

@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)")
private Date firstOrderDate;

Die Eigenschaft „firstOrderDate“ wird festgelegt, indem das Mindesterstellungsdatum aus der Tabelle „Orders“ für Kunden mit derselben ID wie der aktuelle abgerufen wird Entität.

Überlegungen zur Leistung und Portabilität

Es ist wichtig zu beachten, dass @Formula SQL zum Berechnen von Werten verwendet, was sich bei übermäßiger Verwendung auf die Leistung auswirken kann. Darüber hinaus ist die in @Formula-Anmerkungen verwendete SQL-Syntax möglicherweise nicht auf verschiedene Datenbankanbieter übertragbar.

Weitere Informationen finden Sie in den folgenden Ressourcen:

  • [Hibernate Derived Properties – Leistung Und Portabilität](https://vladmihalcea.com/hibernate-derived-properties-performance-portability/)
  • [Hibernate Core-Dokumentation: Abschnitt 5.1.22. Spalten- und Formelelemente](https://docs.jboss.org/hibernate/core/5.6/manual/en-US/html/ch05.html#d0e1830)
  • [Dokumentation zu Hibernate Annotations: Abschnitt 2.4. 3.1. Formel](https://docs.jboss.org/hibernate/orm/6.1/javadocs/org/hibernate/annotations/Formula.html)

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von @Formula berechnete Eigenschaften in JPA und Hibernate zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn