2012-03-06 16 views
5

मैं अपने अनुप्रयोग की दृढ़ता मैपिंग को हाइबरनेट एचबीएम फ़ाइलों से डोमेन ऑब्जेक्ट्स में ले जाने के लिए देख रहा हूं। स्कीमा रचना कॉलम नामों सहित कई Grails 'कॉलम नामकरण सम्मेलनों के अनुरूप नहीं है। मैं यह करना चाहता हूं:Grails एम्बेडेड कॉलम मैपिंग्स को बदलने के लिए कैसे करें

class Foo{ 
    Bar bar 
    static embedded = ['bar'] 
    static mapping = { 
     bar.baz column:'baz' 
     bar.quz column:'qux' 
    } 
} 

class Bar{ 
    String baz, qux 
} 

इस समस्या के लिए jira है। दुर्भाग्यवश यह लगभग दो साल तक खुला नहीं है। क्या डीबी में बदलते कॉलम के इस छोटे से काम के लिए कोई कामकाज है?

उत्तर

1

मेरा मानना ​​है कि एक ही रास्ता है वर्तमान में (grails 2.1) इसके बजाय एम्बेडेड चर एक कस्टम अपने बार वर्ग के लिए हाइबरनेट प्रयोक्ता प्रकार बनाने का उपयोग कर के, बार में मानचित्रण डाल करने के लिए

class Bar { 
    String bar, quz 

    static mapping = { 
     baz column: "baz" 
     quz column: "quz" 
    } 
} 
2

static mapping = { 
    bar type: BarUserType, { 
     column name: "bar" 
     column name: "quz" 
    } 
} 
0

का संभावित हल मैं पाया है बजाय एम्बेड करने का यह @ grails.util.Mixin उपयोग करने के लिए है: तुम तो जो भी स्तंभ नाम आप की तरह चाहते हैं कि कस्टम प्रकार मैप कर सकते हैं

@grails.util.Mixin(Bar) 
class Foo{ 
    static mapping = { 
     baz column:'bazz' 
     quz column:'quxx' 
    } 
} 

class Bar{ 
    String baz, qux 
} 
संबंधित मुद्दे