Как изменить отображение столбцов в Grails - PullRequest
5 голосов
/ 07 марта 2012

Я пытаюсь перенести отображение персистентности моего приложения из hibernate-файлов hbm на объекты домена 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 . К сожалению, он был открыт почти два года без изменений. Есть ли обходной путь для этого изменения столбцов в БД?

Ответы [ 3 ]

2 голосов
/ 31 октября 2012

Вместо использования встроенной переменной создайте пользовательский спящий режим UserType для вашего класса Bar.Затем вы можете сопоставить этот пользовательский тип с любыми именами столбцов:

static mapping = {
    bar type: BarUserType, { 
        column name: "bar"
        column name: "quz"
    }
}
1 голос
/ 09 октября 2012

Я полагаю, что в настоящее время единственный способ (графы 2.1) поместить отображение в Bar,

class Bar {
    String bar, quz

    static mapping = {
        baz column: "baz"
        quz column: "quz"
    }
}
0 голосов
/ 01 сентября 2013

Обходной путь, который я нашел, - это использовать @ grails.util.Mixin вместо встраивания:

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

class Bar{
  String baz, qux
}
...