आपका तैयार विवरण full_address . को कास्ट करता है text . में (पोस्टग्रेज बिल्ट-इन टेक्स्ट टाइप), जबकि ऐसा लगता है कि आपकी टेबल एक citext के साथ बनाई गई है (केस-असंवेदनशील) टेक्स्ट प्रकार (या, आपके पास full_address::text पर एक इंडेक्स की कमी है ) शायद full_address::text . पर एक अनुक्रमणिका बनाने का प्रयास करें और देखें कि क्या आपका तैयार बयान इसे उठाएगा।
एक अन्य विकल्प text . का उपयोग करना है full_address . के लिए टाइप करें कॉलम, और फिर lower(full_address) . पर एक कार्यात्मक अनुक्रमणिका बनाएं -- उस विकल्प का स्वाद आपकी आवश्यकताओं पर निर्भर करता है।
मुझे लगता है कि समस्या का वह हिस्सा यह है कि JDBC citext . के बारे में नहीं जानता है टाइप करें जब तक कि आप JDBC को डेटाबेस में अपना पता citext . के रूप में भेजने के लिए प्राप्त न कर सकें टाइप करें, इसे क्वेरी प्लानर द्वारा text . के रूप में व्याख्यायित किया जाएगा , ठीक वैसे ही जैसे आपका setString() विधि शायद करता है।
दिलचस्प बात यह है कि मैं हाल ही में इसी तरह की समस्या से जूझ रहा हूं
प्रकटीकरण:मैं EnterpriseDB (EDB) के लिए काम करता हूं