2016-12-30 9 views
0

lagacy 데이터베이스에 연결하려고하는데 몇 가지 문제가 있습니다. Grails 3.2.3과 PostgreSQL 9.4를 사용하고 있습니다. 열 이름을 변경하려고하면 GORM이 열을 두 번 만듭니다. 한 번은 선택한 이름으로, 다른 하나는 GORM 열 이름 형식으로 만듭니다. 열은 입니다. estado입니다. Cidade 엔티티이며 "EstadoId"으로 매핑해야합니다. 모두를 생성 사용자 지정 외래 키 열 이름

그것은

: 내가 함께 발견
 
class Estado { 
    int id 
    String sigla 

    static hasMany = [ cidades: Cidade ] 

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

 
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] 
} 

"EstadoId"정수 NOT NULL estadoid 정수 NULL NOT은, 마찬가지로 (밑줄 형식을 사용하여 이름을 선택합니다 my_column_estado가 작동합니다.)

답변

0

이것은 grails의 기본 bahaviour입니다. 당신이

static belongsTo = [ estado : Estado]

를 사용할 때이 매핑이 estado 인스턴스입니다 estado_id 열을 생성합니다.

estado column: ''

드롭 테스트 DB를 EstadoId 및 프로젝트를 다시 컴파일 : 당신이 제약 제거하려고 있나요?

+1

실제로 "EstadoId"라는 이름을 가진 열이 필요합니다. 그러나 캐스케이드가 필요하지 않으므로 다음과 같은 공언을 선언했습니다. Estado estado 및 열 이름 매핑 : estado column : "EstadoId". – user2241710