Определение ограничений домена Grails - PullRequest
5 голосов
/ 15 января 2010

У меня есть приложение Grails с классом -simplified - domain, которое выглядит следующим образом:

class Capacity {

static constraints = {              
    month(blank:false, nullable:false)
    company(blank:false, nullable:false)
}


Date month    
Company company
String note
...
}

Пара месяц-компания должна быть уникальной. (Т.е. они должны быть первичными ключами в БД).

Как я могу определить такое ограничение?

Заранее большое спасибо

1012 * Луис *

Ответы [ 2 ]

6 голосов
/ 15 января 2010

Поскольку вы хотите, чтобы это был составной первичный ключ в БД, вам придется объявить это отображение:

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
5 голосов
/ 15 января 2010

Это должно быть что-то вроде:

static constraints = {              
    month(blank:false, nullable:false, unique:'company')
    company(blank:false, nullable:false)
}

Взгляните на http://grails.org/doc/latest/ref/Constraints/unique.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...