2010-11-12 18 views
14

मैपिंग स्टेटमेंट का उपयोग करके मैं अपने hasMany विशेषता का डिफ़ॉल्ट प्रकार सेट करने का प्रयास कर रहा हूं। मैं grails डॉक्टर का पालन कर रहा हूँ लेकिन यह मेरे लिए काम नहीं करता है (grails 1.3.5)। मेरे कोड लगता है:Grails का डिफ़ॉल्ट प्रकार "हैमनी" डोमेन विशेषता

... 
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'notes0_.sendDate' in 'order clause' 
     at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 
     at com.mysql.jdbc.Util.getInstance(Util.java:384) 
... 

तुम मेरे कोड में कोई गलती दिखाई दे रही है:

class Note { 
    Calendar sendDate 
    static belongsTo = Message 
} 

class Message { 
    static hasMany = [notes: Note] 
    static mapping = { 
     notes sort:'sendDate desc' 
    } 
} 

त्रुटि संदेश की तरह दिखता है?

+0

अपनी स्कीमा निर्यात करें और तालिका और कॉलम देखें, http://www.grails.org/doc/1.1/ref/Command%20Line/schema-export.html –

+0

@Aaron - जब मैंने डिफ़ॉल्ट रूप से इसे आजमाया hsqldb इन-मेमोरी डेटाबेस, यह केवल 'कैलेंडर' फ़ील्ड के लिए एक कॉलम बनाया गया है, और सबकुछ सामान्य दिखता है (मैंने सोचा था कि यह स्टोर करने के लिए दो कॉलम बना रहा था, उदाहरण के लिए, समय क्षेत्र या कुछ, लेकिन ऐसा नहीं लगता था ये था)। –

उत्तर

20

कुछ बातें इस समस्या को ठीक मदद मिल सकती है:

  • तुम सच में sendDate संपत्ति के लिए एक Calendar उपयोग करने की आवश्यकता है? अधिकांश समय, एक java.util.Date का उपयोग करेगा। क्षेत्र के प्रकार को Date में बदलना समस्या को हल करता है?
  • मैंने आपके मैपिंग के साथ एक उदाहरण चलाया और एक त्रुटि मिली। इस के लिए अपने Message स्थिर mapping बंद बदलने का प्रयास करें:

    static mapping = { 
        notes sort: 'sendDate', order: 'desc' 
    } 
    
+1

दुर्भाग्य से दोनों मेरे लिए काम नहीं करते थे। लेकिन मैंने समस्या हल कर दी है कि मैंने दोनों तरफ से संबंध परिभाषित किया है। मैंने नोट क्लास में "संदेश संदेश" जोड़ दिया है और यह काम करता है। :-) लेकिन फिर भी आपकी रुचि के लिए धन्यवाद! :-) – Mateo

+2

@Mateo - जानना अच्छा है। मैं किसी भी समाधान के लिए किसी उत्तर के रूप में जो कुछ भी मिला, उसे पोस्ट करने की सिफारिश करता हूं और फिर उसे स्वीकार कर रहा हूं (कुछ दिनों में) ताकि अन्य लोग यह जान सकें कि समस्या का समाधान कैसे किया जाए। –

9

This page सब के बारे में वस्तु संबंधपरक मानचित्रण बताता है, मैं अपने अनुप्रयोग के साथ एक ऐसी ही समस्या थी। मैं यह इसलिए की तरह हल:

class Note implements Comparable { 
    Calendar sendDate 
    static belongsTo = Message 

    int compareTo(obj) { 
    sendDate.compareTo(obj.sendDate) 
    } 
} 

और

class Message { 
    SortedSet notes 
    static hasMany = [notes: Note] 
} 

आशा इस helpes!

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