2012-03-06 7 views
5

Sto cercando di spostare la mappatura persistenza della mia applicazione da file HBM Hibernate per oggetti graal dominio. Lo schema non è conforme a molte delle convenzioni di denominazione colonna Grails', compresi i nomi delle colonne di composizione. Quello che vorrei fare è questo:Come cambiare le mappature delle colonne Grails incorporati

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

class Bar{ 
    String baz, qux 
} 

C'è jira per questo problema. Purtroppo è stato aperto per quasi due anni, con nessun cambiamento. C'è una soluzione per questo a corto di cambiare le colonne nel db?

risposta

1

Credo che l'unico modo in cui è attualmente (Grails 2.1) per mettere la mappatura a Bar,

class Bar { 
    String bar, quz 

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

Invece di utilizzare la variabile incorporato creare un personalizzato hibernate UserType per la classe Bar. È quindi possibile mappare che tipo personalizzato a qualsiasi nomi colonna che si desidera come:

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

Una soluzione che ho trovato è quello di utilizzare @ grails.util.Mixin anziché incorporare:

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

class Bar{ 
    String baz, qux 
} 
Problemi correlati