Heim >Java >javaLernprogramm >Wie kann ich berechnete Eigenschaften in JPA und Hibernate zuordnen, ohne HQL oder Criteria API zu verwenden?

Wie kann ich berechnete Eigenschaften in JPA und Hibernate zuordnen, ohne HQL oder Criteria API zu verwenden?

DDD
DDDOriginal
2024-12-03 01:44:10540Durchsuche

How Can I Map Calculated Properties in JPA and Hibernate Without Using HQL or Criteria API?

Berechnete Eigenschaften mit JPA und Ruhezustand zuordnen

Hintergrund:

Angenommen, Sie haben Java Bean mit einer Eigenschaft, die nicht direkt einer Datenbankspalte zugeordnet ist. Stattdessen soll es von der Datenbank mithilfe einer Operation wie COUNT() berechnet werden. Sie suchen nach einer Möglichkeit, diese Eigenschaft abzubilden, ohne auf HQL oder die Kriterien-API zurückzugreifen.

Lösung mit der @Formula von Hibernate:

JPA unterstützt abgeleitete Eigenschaften nicht direkt. Als Lösung bietet Hibernate jedoch die Annotation @Formula an. Mithilfe dieser Annotation können Sie eine Formel für die Eigenschaft angeben, die SQL-Fragmente oder komplexe Abfragen umfassen kann:

@Formula("COUNT(childColumns)")
private int childCount;

Beispielformeln:

  • Berechnen ein Preis mit Aufschlag:
@Formula("PRICE*1.155")
private float finalPrice;
  • Ermitteln des Mindestbestelldatums für a Kunde:
@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)")
private Date firstOrderDate;

Vorteile von @Formula:

  • Ermöglicht die Zuordnung berechneter Eigenschaften ohne zusätzliche HQL- oder Kriterien-API-Abfragen.
  • Kann die Leistung verbessern, indem unnötige Datenbank-Roundtrips vermieden werden.
  • Unterstützt die übergreifende Portabilität verschiedene Datenbankplattformen.

Zusätzliche Ressourcen:

  • [Hibernate Derived Properties – Leistung und Portabilität](https://thoughts-on-java .org/hibernate-derived-properties-performance-and-portability/)
  • [Hibernate Core-Dokumentation zu Formelelemente](https://docs.jboss.org/hibernate/core/4.3/manual/en-US/html/ch05.html#formula-support)
  • [Dokumentation zu Hibernate Annotations auf Formel](https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#d0e735)

Das obige ist der detaillierte Inhalt vonWie kann ich berechnete Eigenschaften in JPA und Hibernate zuordnen, ohne HQL oder Criteria API zu verwenden?. 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