Spring Data JPA mendukung entitas penghitungan menggunakan spesifikasi. Tetapi apakah ada cara untuk menghitung entitas menggunakan metode name resolving? Katakanlah saya ingin metode countByName
untuk menghitung entitas dengan nama tertentu, seperti metode findByName
untuk mengambil semua entitas dengan nama tertentu.
java
spring
spring-data-jpa
YaoFeng
sumber
sumber
Jawaban:
Pada Spring Data 1.7.1. RILIS Anda dapat melakukannya dengan dua cara berbeda,
1) Cara baru , menggunakan derivasi kueri untuk menghitung dan menghapus kueri. Baca ini , (Contoh 5). Contoh,
2) Cara lama , Menggunakan anotasi @Query.
Contoh,
atau menggunakan anotasi @Param juga,
Cek juga ini jadi jawabannya .
sumber
Selama Anda tidak menggunakan versi 1.4, Anda dapat menggunakan penjelasan eksplisit:
contoh:
sumber
long
bukanint
, jika tidak Anda akan mendapatkan ClassCastException tanpa petunjukJpaRepository juga memperluas QueryByExampleExecutor. Jadi, Anda bahkan tidak perlu menentukan metode khusus pada antarmuka Anda:
Dan kemudian kueri seperti:
sumber
int age
akan disertakan meskipun tidak ditetapkan, tetapiInteger age
akan dikeluarkan dari sampel (setidaknya di Eclipselink)Fitur ini telah ditambahkan di versi 1.4 M1
sumber
Contoh kerja
Memanggil dari lapisan DAO
sumber
Menurut Abel, setelah versi 1.4 (diuji dalam versi 1.4.3.RELEASE) dimungkinkan melakukan cara ini:
publik countByName panjang (nama String);
sumber
Rupanya itu diterapkan sekarang DATAJPA-231
sumber
Terima kasih semuanya! Sekarang berhasil. DATAJPA-231
Alangkah baiknya jika memungkinkan untuk membuat hitungan ... Dengan ... metode seperti menemukan ... Dengan satu. Contoh:
sumber
Menurut masalah DATAJPA-231 , fitur tersebut belum diimplementasikan.
sumber
Saya baru mengerjakannya selama beberapa minggu tetapi saya tidak percaya bahwa ini benar-benar mungkin, namun Anda harus bisa mendapatkan efek yang sama dengan sedikit usaha lagi; cukup tulis kueri itu sendiri dan beri anotasi nama metode. Ini mungkin tidak jauh lebih sederhana daripada menulis metode sendiri tetapi menurut saya lebih bersih.
Edit: sekarang dimungkinkan menurut DATAJPA-231
sumber
sumber
Jika ada yang ingin menghitung berdasarkan beberapa kondisi daripada di sini adalah contoh kueri khusus
sumber