Uw voorbereide verklaring werpt full_address
in text
(het ingebouwde teksttype van Postgres), terwijl het lijkt alsof uw tabel is gemaakt met een citext
(hoofdletterongevoelig) teksttype (of, u mist een index op full_address::text
). Probeer misschien een index te maken op full_address::text
en kijk of je voorbereide verklaring het zal oppikken.
Een andere optie is om een text
. te gebruiken typ voor het full_address
kolom en maak vervolgens een functionele index op lower(full_address)
-- de smaak van die optie hangt af van wat uw eisen zijn.
Ik denk dat een deel van het probleem is dat JDBC niets weet over de citext
typ zo, tenzij je JDBC zover kunt krijgen om je adres naar de database te sturen als een citext
type, wordt het door de queryplanner geïnterpreteerd als text
, net als uw setString()
methode waarschijnlijk wel.
Interessant is dat ik recentelijk een soortgelijk probleem tegenkwam
Openbaarmaking:ik werk voor EnterpriseDB (EDB)