Pernyataan yang Anda siapkan menampilkan full_address
menjadi text
(Jenis teks bawaan Postgres), sedangkan tampaknya tabel Anda dibuat dengan citext
(tidak peka huruf besar/kecil) jenis teks (atau, Anda tidak memiliki indeks pada full_address::text
). Mungkin coba buat indeks di full_address::text
dan lihat apakah pernyataan yang Anda siapkan akan sesuai.
Pilihan lainnya adalah menggunakan text
ketik full_address
kolom, lalu buat indeks fungsional di lower(full_address)
-- kelezatan opsi tersebut bergantung pada kebutuhan Anda.
Saya pikir bagian dari masalahnya adalah JDBC tidak tahu tentang citext
ketik jadi kecuali Anda bisa meminta JDBC untuk mengirim alamat Anda ke database sebagai citext
ketik, itu akan ditafsirkan oleh perencana kueri sebagai text
, seperti setString()
. Anda metode ini mungkin.
Menariknya, saya mengalami masalah serupa baru-baru ini
Pengungkapan:Saya bekerja untuk EnterpriseDB (EDB)