Kueri fuzzy
Penggunaan data pegas JPA dapat mengurangi penulisan pernyataan SQL pengembang, dan bahkan tidak perlu menulis pernyataan SQL sama sekali. Namun, selama proses pengembangan, akan selalu ada berbagai skenario dan jebakan yang kompleks dari semua ukuran.
Modul fungsional dalam proyek saat ini membutuhkan kueri fuzzy. Kata kunci kueri fuzzy 'seperti' di SQL asli, dan antarmuka repositori Spring Data JPA juga memiliki sesuai dengan bidang entitas. Tetapi jika Anda menggunakannya secara langsung, maka selamat, Anda beruntung memiliki jebakan.
Data pegas jpa fuzzy kueri penggunaan yang benar
Pertama, kami membuat entitas untuk menyimpan data kami
/** * entitas * * @author chentai * @date 18/04/22 */ @data @entitas @equalsandHashCode (calluper = true) CLASS CLASS Contoh {@id @idgeneratedValue (generator = "uuid") @Genericgenerator (name = "uUid", strategi = "uuid") @genericgenerator (name = "uuid", strategi = "uuUd" uuid ") @Genericgenerator (name =" uuid ", uuUd" uuUD ") nama pengguna string pribadi; Private String DeviceNames;}Selanjutnya, buat antarmuka repositori yang sesuai dengan entitas kami
/** * @Author chentai * @date 18/04/22 */ @repositorypublic antarmuka Contoh Exterpository memperluas crudrepository <exampleentity, string> {/** * Penggunaan fuzzy fuzzy * fuzeram fuzzy * fuzzy * fuzzy * fuzzy * UserName UserName nama pengguna * @return {@link Daftar <Spestertity>} */ Daftar <Spestertity> findAllByDeviceNamescontainingAncusername (string deviceNames, string username); / *** Kesalahan Penggunaan kueri fuzzy* Di mana nama pengguna tidak mendukung kueri fuzzy, DeviceNames mendukung kueri fuzzy** @param devicenames kueri fuzzy deviceNames* @param nama pengguna nama pengguna, Contoh Temuan> @RetEdby @link <Contoh Contoh>}*/ Daftar Contoh -contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh> Contoh Contoh> Contoh -Contoh> Contoh -Contoh> Contoh -Contoh <cerkel ExelleVeVer <levic <celordEntity>}/ Daftar Contoh <cerstallyity> nama belakang); } Akhirnya, kami menguji dua metode dalam exampository di kelas tes (hasil tes tidak ditampilkan untuk saat ini) dan menemukan bahwa metode FindAllByDeviceNamesLikeandusername tidak dengan benar menanyakan hasil yang kami inginkan, dan hasil yang diperoleh adalah hasil dari permintaan yang tepat. Dan FindAllByDevicenamescontaining danusername mendapatkan hasil dari kueri fuzzy yang kita inginkan.
Meringkaskan
Jika Anda ingin menggunakan kueri fuzzy tanpa menulis pernyataan asli SQL dalam proyek Anda, silakan gunakan kata kunci yang berisi alih -alih menerima begitu saja bahwa kata kunci seperti digunakan secara asli. Kata kunci seperti juga digunakan dalam JPA.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.