2010-01-15 12 views
5

은 내가 -simplified와 Grails 애플리케이션이있다. (즉, 그들은 DB에서 기본 키가되어야합니다).Grails의 도메인 제약 조건 정의

어떻게 이러한 제약 조건을 정의 할 수 있습니까?

미리 감사

루이스

+1

그저 Grails 일뿐 Grails의 Groovy는 아닙니다. –

답변

6

이이 composite primary key DB를에 해당 매핑을 선언해야합니다되고 싶어하기 때문에 (다음 표를 생성

class Capacity implements Serializable { 
    Date month  
    Company company 
    String note 
    ... 

    static mapping = { 
     id composite:['month', 'company'] 
    } 
} 

을 MySQL) :

CREATE 
    TABLE capacity 
    (
     MONTH DATETIME NOT NULL, 
     company_id bigint NOT NULL, 
     version bigint NOT NULL, 
     note VARCHAR(255) NOT NULL, 
     PRIMARY KEY (MONTH, company_id), 
     INDEX FKFBF514BA69595C7A (company_id) 
    ) 
    ENGINE=MyISAM DEFAULT CHARSET=latin1 
+0

감사합니다! 이것은 정확히 내가 무엇을 찾고 있었는지 – Luixv

+0

'validate()'도 여전히 유일성을 유지합니까? 그렇지 않다면이 대답과 Dave의 조합이 필요하다고 생각합니다. 그렇지 않으면 Grails 유효성 검사 오류 대신 SQL 제약 조건 예외가 발생합니다. –

+0

@RobHruska 제약 조건 중 일부는 유효성을 검사하기 위해 데이터베이스의 상태를 사용하고 단위 테스트에서는 존재하지 않습니다 (Grails 2.0 이전). –