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