Rumah >Java >javaTutorial >Bagaimanakah Peta Anotasi @Formula Hibernate Boleh Mengira Sifat dalam JPA?

Bagaimanakah Peta Anotasi @Formula Hibernate Boleh Mengira Sifat dalam JPA?

Susan Sarandon
Susan Sarandonasal
2024-11-17 17:02:02275semak imbas

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

Memetakan Sifat Dikira dalam JPA dengan Anotasi @Formula Hibernate

Dalam entiti Java Persistence API (JPA), sifat yang dikira mewakili nilai yang diperoleh daripada yang lain sifat entiti atau pengiraan pangkalan data. Sifat ini tidak dipetakan ke lajur pangkalan data tetapi boleh diambil semula atau dikemas kini atas permintaan. Hibernate menawarkan anotasi @Formula untuk memetakan sifat terkira dengan mudah dalam entiti JPA anda.

Untuk menggunakan anotasi @Formula, hanya gunakannya pada sifat terkira dalam entiti anda. Anotasi menerima serpihan SQL yang menentukan logik pengiraan. Sebagai contoh, jika anda mempunyai sifat "childCount" yang harus dikira menggunakan fungsi COUNT() pangkalan data, anda boleh mentakrifkannya seperti berikut:

@Formula("COUNT(SELECT 1 FROM Child WHERE Child.parentId = id)")
private int childCount;

Dalam contoh ini, fragmen SQL COUNT(SELECT 1 FROM Child WHERE Child.parentId = id) mengira bilangan entiti anak yang dikaitkan dengan entiti semasa.

Anotasi @Formula menyediakan fleksibiliti dengan menyokong pertanyaan yang lebih kompleks. Sebagai contoh, anda boleh mengira tarikh pembuatan minimum pesanan yang dikaitkan dengan pelanggan:

@Formula("(SELECT MIN(o.creation_date) FROM Orders o WHERE o.customer_id = id)")
private Date firstOrderDate;

Adalah penting untuk ambil perhatian bahawa anotasi @Formula ialah sambungan khusus Hibernate. Walaupun ia membenarkan pemetaan cekap bagi sifat yang dikira, ia hanya tersedia apabila menggunakan Hibernate sebagai penyedia kegigihan JPA.

Untuk bacaan lanjut tentang topik, pertimbangkan sumber berikut:

  • [Hibernate Sifat Terbitan - Prestasi dan Kemudahalihan](https://vladmihalcea.com/hibernate-derived-properties-performance-and-portability/)
  • [Dokumentasi Teras Hibernate - Lajur dan Formula Elemen](https://docs.jboss.org/hibernate/core/5.5/manual/en-US/html_single/#d0e2491)
  • [Dokumentasi Anotasi Hibernate - Formula](https://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e3346)

Atas ialah kandungan terperinci Bagaimanakah Peta Anotasi @Formula Hibernate Boleh Mengira Sifat dalam JPA?. 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