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:
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!