2012-02-13 13 views
6

मेरे डोमेन वर्ग इस तरह दिखता है:मैं अपने स्ट्रिंग फ़ील्ड को क्लॉब में मैप करने के लिए Grails कैसे प्राप्त करूं?

package com.initech.tps 

class Foo 
{ 
    String stuff 

    static mapping = { 
     // mapping to a legacy table as opposed to letting Grails create it 
     table name: 'FOO', schema: 'TPS' 
     id generator: 'sequence', params: [sequence: 'MY_SEQ'], 
      column: 'FOO_ID', sqlType: 'integer' 
     foo column: 'STUFF' 
    } 

    static constraints = { 
     stuff(nullable: true, maxSize: 40000) 
    } 
} 

मैं छाप Grails के तहत किया गया यह पता लगाने के लिए एक VARCHAR MAXSIZE बाधा के लिए एक बड़ा पर्याप्त मूल्य में मेरी गुजर के आधार पर करने के बजाय एक CLOB उपयोग करने के लिए होता है, बजाय मैं कंसोल में इस त्रुटि संदेश:

org.hibernate.HibernateException: Wrong column type in FOO for column STUFF. 
Found: clob, expected: varchar(40000) 

मैं मानचित्रण पर एक स्पष्ट sqlType की ज़रूरत है? मैंने maxSize के विभिन्न मानों का उपयोग करने की कोशिश की, और इसे बिना किसी अंतर के पूरी तरह से बाहर छोड़ दिया। sqlType: clob या भी काम नहीं कर रहा है।

मैं आईबीएम डीबी 2-एक्सप्रेस का उपयोग कर Grails 1.3.7 पर हूं।

उत्तर

9

उत्तर मिला। कुछ खोजने के लिए reading the documentation जैसी कुछ भी नहीं।

परिवर्तन यह है कि काम किया

foo column: 'STUFF', type: "text" 
0

मैंने अपने Grails प्रोजेक्ट में "क्लोब डेटा" का उपयोग किया और यह ठीक काम किया।

क्या आप क्लोब का उपयोग कर सकते हैं?

class Foo 
{ 
Clob stuff 
} 
+0

कि एक तरह से यह करने के लिए हो सकता है, मुझे लगता है कि। मैं वास्तव में एक उत्तर देखना चाहता हूं जो मुझे डोमेन ऑब्जेक्ट में एक स्ट्रिंग का उपयोग करने की अनुमति देता है। इसके लिए एक उपयोगकर्ता टाइप होना चाहिए। –

3

को CLOB स्तंभ के लिए मानचित्रण बदल रहा था मैं जानता हूँ कि बहुत देर हो चुकी है, लेकिन भविष्य में संदर्भ के लिए:

तुम सिर्फ एक मानचित्रण

static mapping = { stuff type:'text' } 
जोड़ने के लिए है

और यह सब कुछ है, grails डेटा प्रकार को क्लोब या किसी अन्य को बदलता है जो आपके द्वारा उपयोग किए जा रहे डेटाबेस में आधारित बड़े तारों को पकड़ सकता है।

0

हालांकि वास्तविक ओरेकल डीबी कॉलम प्रकार सीएलओबी है, type:'text'dbCreate को 0Sपर डेटासोर्स.groovy में सेट करने में मदद नहीं मिली है।

लेकिन यह मेरी Grails 2.2.0 के लिए काम करता है:

static mapping = { stuff sqlType: 'clob' } 
संबंधित मुद्दे

 संबंधित मुद्दे