4

여러 열에 대해 명명 된 고유 제한 조건을 만들려면 어떻게해야합니까?Grails : 다중 열에 대해 고유 한 구속 조건을 만들려면 어떻게해야합니까?

나는 세 가지 클래스했습니다 :

class Descriptor { 
    // some columns 
} 

class Protein { 
    // some columns 
} 

class DescriptorValue { 
    // some columns 
    static belongsTo = [protein: Protein, descriptor: Descriptor] 
    static constraints = { 
     protein(unique:['descriptor']) 
    } 
} 

GORM은 서로 다른 환경에서 다른 자동 생성 된 이름을 가진 인덱스를 만듭니다. 이름을 어떻게 지정할 수 있습니까?

답변

1

은 좋아 할 것 : 당신이 다중 열 인덱스를 사용해야하는 경우

static mapping = { 
    protein unique:['descriptor'], index: 'protein_idx' //or whatever name you like 
} 

는, 당신은 모든 재산 동일한 인덱스 이름을 지정할 수 있습니다.

+0

특정 버전의 grails입니까? 저는 현재 grails 2.2.5에서 멈추었 고 unique : [ 'descriptor']를 사용하면 작동하지 않습니다. (이 구문은 제약 조건 섹션에서 작동하지만 매핑 섹션에서는 작동하지 않습니다). 위의 코드는 색인 이름이 'protein'인 단백질에 대한 고유 제한 조건과 'protein_idx'라는 두 번째 비 고유 색인을 단백질 컬럼에 지정합니다. – burns

0
String field1 
String field2 
Integer field3 
SomeObject object 

    static constraints = { 
     object unique: ['field1','field2', 'field3'] 
    }