Rumah > Java > javaTutorial > teks badan

Bolehkah Spring Data JPA Mengendalikan Pertanyaan Kompleks dengan Operator Gabungan \'Dan\' dan \'Atau\'?

DDD
Lepaskan: 2024-10-27 08:32:30
asal
377 orang telah melayarinya

 Can Spring Data JPA Handle Complex Queries with Combined

Mencipta Pertanyaan Kompleks dengan Operator Logik Gabungan dalam Spring Data JPA

Meningkatkan keupayaan pembinaan pertanyaan intuitif Spring Data JPA, soalan ini bergelut dengan menggabungkan kedua-dua pengendali "Dan" dan "Atau" melalui nama kaedah. Untuk mencapai matlamat ini, kaedah pertanyaan direka bentuk seperti berikut:

findByPlan_PlanTypeInAndSetupStepIsNullOrStepupStepIs(...)
Salin selepas log masuk

Walau bagaimanapun, pertanyaan yang terhasil mentafsir ungkapan sebagai [(exp1 dan exp2) atau (exp3)], bercanggah dengan yang dimaksudkan ](exp1) dan (exp2 atau exp3)].

Bolehkah Spring Data JPA menampung pertanyaan kompleks tersebut?

Penyelesaian: Leverage Logical Equivalency

Sambil berhemat untuk elakkan nama kaedah yang terlalu panjang dan tidak dapat difahami, hasil yang diingini boleh dicapai dengan memanfaatkan kesetaraan logik berikut:

A /\ (B \/ C) <=> (A /\ B) \/ (A /\ C)
A and (B or C) <=> (A and B) or (A and C)
Salin selepas log masuk

Menggunakan ini pada contoh:

findByPlan_PlanTypeInAndSetupStepIsNullOrPlan_PlanTypeInAndStepupStepIs(...)
Salin selepas log masuk

Dengan memisahkan ungkapan menjadi Plan_PlanTypeInAndSetupStepIsNull dan Plan_PlanTypeInAndStepupStepIs, kita boleh membina pertanyaan yang betul:

(exp1) and (exp2 or exp3)
Salin selepas log masuk

Atas ialah kandungan terperinci Bolehkah Spring Data JPA Mengendalikan Pertanyaan Kompleks dengan Operator Gabungan \'Dan\' dan \'Atau\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!