के साथ ओरेकल 10 जी सीएलओबी का उपयोग करना मैं ओरेकल 10 जी और ग्रेल्स v2.0.1 का उपयोग कर एक प्रोजेक्ट पर काम कर रहा हूं।ग्रेल्स 2.0.1
मैं अपने डोमेन वर्ग में एक टेक्स्ट इनपुट फ़ील्ड के लिए एक सीएलओबी डेटा प्रकार का उपयोग करने की कोशिश कर रहा हूं, और ऐसा लगता है कि यह काम नहीं कर रहा है। मेरा पहला प्रयास है कि मैं क्या here about GORM पढ़ पर आधारित थी, जहां है type: 'text'
उपयोग करने के लिए, इस उदाहरण की तरह कहते हैं:
class Address {
String number
String postCode
static mapping = {
postCode type: 'text'
}
}
Grails मैप किया गया है कि मेरे DB में एक LONG
डेटा प्रकार, जो not desirable
2 प्रयास है करने के लिए type: 'clob'
आज़माएं। यह मेरी डीबी डेटाटाइप को सीएलओबी होने में प्रभावी था, लेकिन इसके परिणामस्वरूप क्लास कास्ट त्रुटि हुई क्योंकि संपत्ति को स्वयं स्ट्रिंग के रूप में परिभाषित किया गया था, यानी String postCode
। (ध्यान दें कि मैं दस्तावेज में type:'clob'
कभी नहीं देखा है, लेकिन मैं बोली क्लास से निकाल सकता है कि clob
वहाँ एक मान्य इनपुट हो सकता है)
मैं बाद में, एक java.sql.Clob
के रूप में संपत्ति को परिभाषित यानी Clob postCode;
की कोशिश की, और कहा कि didn ' बिल्कुल काम नहीं करते। कोई त्रुटि संदेश नहीं, लेकिन डीबी को कुछ भी जारी नहीं किया जा रहा था।
मैं Clob
दृष्टिकोण रखते हुए, लेकिन एक क्षणिक String
संपत्ति है, जिसमें getters/setters लगातार CLOB क्षेत्र के लिए क्षणिक स्ट्रिंग मान मैप करने के लिए प्रयास का उपयोग करने का एक अंतिम कदम उठाया। लेकिन मैं यह नहीं समझ सकता कि क्लॉब में अपना स्ट्रिंग वैल्यू कैसे प्राप्त करें। Grails एक त्रुटि फेंक नहीं है, लेकिन मेरे प्रयास किए गए असाइनमेंट के बाद println()
कभी प्रिंट नहीं करता है। मैंने असाइनमेंट करने के लिए myClob.setString(1, theString)
का उपयोग करने का प्रयास किया है, लेकिन बिना किसी सफलता के।
इसलिए एक लंबी कहानी कम करने के लिए, मैं अपने परिदृश्य में क्लॉब का उपयोग नहीं कर सकता, और मुझे आश्चर्य है कि किसी और ने इसे देखा है और इसे दूर करने में सक्षम है। यदि हां, तो क्या आप मुझे बता सकते हैं कि मैं गलत क्या कर सकता हूं?
या ... क्या डेटाटाइप Grails को ओवरराइड करने का कोई तरीका है जैसे कि मैं postCode type: 'text'
को CLOB
पर मैप करने के लिए मजबूर कर सकता हूं? मैं हाइबरनेट के साथ कुशल नहीं हूं, इसलिए मुझे यकीन नहीं है कि अगर कोई रास्ता है तो इसके बारे में कैसे जाना है।
साइड नोट: Grails 1.3.7 से 2.0.1 तक हमारे अपग्रेड से पहले, मुझे पूरा यकीन है कि type: 'text'
वास्तव में, ओरेकल में एक सीएलओबी के लिए मानचित्र किया गया था। तो यह 2.0.1 के लिए नया हो सकता है।
खैर (http://grails.org/doc/2.0.x/ref/Database%20Mapping/type.html) वास्तव में अपने मामले में उस प्रकार लिखा है CLOB होगा, लेकिन मुझे अभी तक इसका उपयोग नहीं करना पड़ेगा, इसलिए मैं आश्वस्त नहीं कर सकता कि यह 2.0.x –