La tua dichiarazione preparata genera full_address
in text
(tipo di testo incorporato di Postgres), mentre sembra che la tua tabella sia stata creata con un citext
tipo di testo (senza distinzione tra maiuscole e minuscole) (oppure, non hai un indice su full_address::text
). Forse prova a creare un indice su full_address::text
e vedi se la tua dichiarazione preparata lo raccoglierà.
Un'altra opzione è usare un text
digita per il full_address
colonna, quindi creare un indice funzionale su lower(full_address)
-- l'appetibilità di tale opzione dipende dalle tue esigenze.
Penso che parte del problema sia che JDBC non conosce il citext
digita così a meno che tu non riesca a convincere JDBC a inviare il tuo indirizzo al database come citext
digita, verrà interpretato dal pianificatore di query come text
, proprio come il tuo setString()
il metodo probabilmente lo fa.
È interessante notare che mi sono imbattuto di recente in un problema simile
Divulgazione:lavoro per EnterpriseDB (EDB)