Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Memetakan Hartanah Dikira dalam JPA dan Hibernate Menggunakan @Formula?

Bagaimanakah Saya Boleh Memetakan Hartanah Dikira dalam JPA dan Hibernate Menggunakan @Formula?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 11:59:13772semak imbas

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

Memetakan Sifat Dikira dengan JPA dan Hibernate: Panduan

Banyak kacang Java mempunyai sifat yang tidak dinyatakan secara jelas dalam jadual pangkalan data. Sifat ini mungkin merupakan nilai yang dikira, seperti bilangan entiti anak yang dikaitkan dengan entiti induk.

Secara tradisinya, sifat tersebut telah ditetapkan menggunakan HQL atau API Kriteria. Walau bagaimanapun, anotasi @Formula dalam Hibernate menyediakan pendekatan yang lebih cekap dan deklaratif.

Menggunakan Anotasi @Formula

Anotasi @Formula membolehkan anda menentukan serpihan SQL yang mengira nilai harta:

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

Dalam contoh ini, harta harga akhir ialah dikira dengan mendarab lajur PRICE dengan 1.155.

Pertanyaan Kompleks dan Jadual Terbitan

@Formula juga boleh mengendalikan pertanyaan kompleks yang melibatkan berbilang jadual:

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

Harta firstOrderDate ditetapkan dengan mendapatkan semula tarikh pembuatan minimum daripada jadual Pesanan untuk pelanggan yang mempunyai id yang sama seperti entiti semasa.

Pertimbangan Prestasi dan Mudah Alih

Adalah penting untuk ambil perhatian bahawa @Formula menggunakan SQL untuk mengira nilai, yang boleh memberi kesan kepada prestasi jika digunakan secara berlebihan. Selain itu, sintaks SQL yang digunakan dalam anotasi @Formula mungkin tidak mudah alih merentas vendor pangkalan data yang berbeza.

Untuk maklumat lanjut, rujuk sumber berikut:

  • [Hibernate Derived Properties - Performance dan Kemudahalihan](https://vladmihalcea.com/hibernate-derived-properties-performance-portability/)
  • [Dokumentasi Teras Hibernate: Bahagian 5.1.22. Lajur dan elemen formula](https://docs.jboss.org/hibernate/core/5.6/manual/en-US/html/ch05.html#d0e1830)
  • [Dokumentasi Anotasi Hibernate: Bahagian 2.4. 3.1. Formula](https://docs.jboss.org/hibernate/orm/6.1/javadocs/org/hibernate/annotations/Formula.html)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memetakan Hartanah Dikira dalam JPA dan Hibernate Menggunakan @Formula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn