Saya ingin menulis kueri serupa JpaRepository
tetapi tidak mengembalikan apa pun:
LIKE '%place%'
-ini tidak bekerja.
LIKE 'place'
bekerja dengan sempurna.
Ini kode saya:
@Repository("registerUserRepository")
public interface RegisterUserRepository extendsJpaRepository<Registration,Long> {
@Query("Select c from Registration c where c.place like :place")
List<Registration> findByPlaceContaining(@Param("place")String place);
}
java
jpa
spring-data-jpa
sudeep cv
sumber
sumber
like '%:place%'
dengan'
dan tidak ada hasil sama sekali, karena Hibernate menambahkan'
s ke string dengan sendirinya.Anda sebenarnya tidak memerlukan
@Query
anotasi sama sekali.Anda bisa menggunakan yang berikut ini
sumber
@Query()
itu suatu keharusan, bukan? Dengan pendekatan itu, saya harus membuator
itu sebenarnya bukan solusi yang cocok untuk kasus itu:findByField1OrField2Containg(String phraseForField1, String phraseForField2)
Anda juga dapat menerapkan kueri serupa menggunakan kata kunci yang didukung JPA Spring Data "Berisi" .
sumber
Untuk kasus Anda, Anda dapat langsung menggunakan metode JPA. Itu seperti di bawah ini:
Berisi: pilih ... like%: place%
Di sini, IgnoreCase akan membantu Anda untuk mencari item dengan mengabaikan case.
Menggunakan @Query di JPQL :
Berikut beberapa metode terkait:
Suka
findByPlaceLike
… Dimana x.place seperti? 1
Dimulai dengan
findByPlaceStartingWith
… Dimana x.place seperti? 1 (parameter terikat dengan% tambahan)
EndingWith
findByPlaceEndingWith
… Di mana x.place seperti? 1 (parameter terikat dengan% diawali)
Mengandung
findByPlaceContaining
… Di mana x.place seperti? 1 (parameter terikat dibungkus dalam%)
Info lebih lanjut, lihat tautan ini , tautan ini dan ini
Semoga ini bisa membantu Anda :)
sumber
Anda dapat memiliki satu alternatif untuk menggunakan placeholder sebagai:
sumber
Coba ini.
sumber
something=:place
dananother like %:place%
di query.saat panggilan funtion, saya menggunakan:
findByPlaceContaining("%" + place);
atau:
findByPlaceContaining(place + "%");
atau:
findByPlaceContaining("%" + place + "%");
sumber
jawabannya pasti
sumber
Menemukan solusi tanpa
@Query
(sebenarnya saya mencoba yang mana yang "diterima". Namun, tidak berhasil).Harus kembali,
Page<Entity>
bukanList<Entity>
:IgnoreCase
bagian sangat penting untuk mencapai ini!sumber