Váš připravený výpis přenáší full_address do text (vestavěný typ textu Postgres), zatímco se zdá, že vaše tabulka je vytvořena s citext (nerozlišují se malá a velká písmena) typ textu (nebo vám chybí index na full_address::text ). Možná zkuste vytvořit index na full_address::text a uvidíte, zda to vaše připravené prohlášení zachytí.
Další možností je použít text zadejte full_address a poté vytvořte funkční index na lower(full_address) -- chutnost této možnosti závisí na vašich požadavcích.
Myslím, že část problému spočívá v tom, že JDBC nezná citext zadejte, takže pokud nemůžete přimět JDBC k odeslání vaší adresy do databáze jako citext typu, bude plánovačem dotazů interpretován jako text , stejně jako vaše setString() metoda pravděpodobně ano.
Zajímavé je, že jsem nedávno narazil na podobný problém
Zveřejnění:Pracuji pro EnterpriseDB (EDB)