Ditt förberedda uttalande avger full_address
till text
(Postgres inbyggda texttyp), medan det verkar som om din tabell är skapad med en citext
(skiftlägeskänslig) texttyp (eller, du saknar ett index på full_address::text
). Kanske prova att skapa ett index på full_address::text
och se om ditt förberedda uttalande kommer att ta upp det.
Ett annat alternativ är att använda en text
skriv för full_address
kolumn och skapa sedan ett funktionsindex på lower(full_address)
-- det här alternativets smaklighet beror på dina krav.
Jag tror att en del av problemet är att JDBC inte känner till citext
skriv så om du inte kan få JDBC att skicka din adress till databasen som en citext
typ, kommer den att tolkas av frågeplaneraren som text
, precis som din setString()
metod gör det förmodligen.
Intressant nog har jag stött på ett liknande problem nyligen
Upplysning:Jag arbetar för EnterpriseDB (EDB)