2016-12-30 9 views
0

Я пытаюсь подключить базу данных lagacy, и у меня возникают некоторые проблемы. Я использую Grails 3.2.3 и Postgresql 9.4. Когда вы пытаетесь изменить имя столбца, GORM создает столбец дважды, один раз с именем, которое я выбираю, а другой с форматом имени столбца GORM. Столбец estado in Cidade Сущность и мне нужно сопоставить его с "EstadoId".Пользовательское имя столбца внешнего ключа

Этом создания как: "EstadoId" целое NOT NULL estadoid целое NOT NULL,

 
class Cidade { 
    int id 
    String nome 
    Boolean capital 

    static mapping = { 
    table '`tbCidades`' 
    id column: '`CidadeId`' 
    nome column: '`Nome`' 
    capital column: '`Capital`' 
    estado column: '`EstadoId`' 
    version false 
    } 

    static belongsTo = [ estado : Estado] 
} 

 
class Estado { 
    int id 
    String sigla 

    static hasMany = [ cidades: Cidade ] 

    static mapping = { 
    table '`tbEstados`' 
    id column: '`EstadoId`' 
    sigla column: '`Sigla`' 
    version false 
    } 
} 

я заметил, с I выбрать имя с подчеркиванием формат (как: my_column_estado это работает.)

ответ

0

По умолчанию bahaviour of grails; при использовании

static belongsTo = [ estado : Estado]

это создает estado_id столбец, который является отображением в estado инстанции. Вы пытаетесь удалить ограничение:

estado column: ' EstadoId '

тест на падение дб и перекомпилировать проект?

+1

На самом деле мне нужна колонка, которая имеет название «EstadoId». Но так как не нужен какой-либо каскад, он просто объявил атрибут следующим образом: Estado estado и сопоставил название колонки: estado column: «EstadoId». – user2241710