Din forberedte erklæring afgiver full_address
ind i text
(Postgres' indbyggede teksttype), hvorimod det ser ud til, at din tabel er oprettet med en citext
(uafhængig af store og små bogstaver) teksttype (eller du mangler et indeks på full_address::text
). Prøv måske at oprette et indeks på full_address::text
og se, om din forberedte erklæring kan opfange den.
En anden mulighed er at bruge en text
skriv for full_address
kolonne, og opret derefter et funktionelt indeks på lower(full_address)
-- smagen af denne mulighed afhænger af dine krav.
Jeg tror, at en del af problemet er, at JDBC ikke kender til citext
skriv det, medmindre du kan få JDBC til at sende din adresse til databasen som en citext
type, vil det blive fortolket af forespørgselsplanlæggeren som text
, ligesom din setString()
metode gør det sandsynligvis.
Interessant nok løb ind i et lignende problem for nylig
Offentliggørelse:Jeg arbejder for EnterpriseDB (EDB)