grails composite "unique constraint", но как?

Я очень близок к решению, но все еще что-то не так, надеюсь на помощь, заранее спасибо.

У меня есть доменная модель Customer типа:

class BoCustomer implements Serializable{

    String firstName
    String lastName
    String emailID
    Company company
}

Итак, у меня есть первичный ключ = "id", это нормально. Далее мне нужно уникальное ограничение, которое "проверяет" следующее: "только один уникальный адрес электронной почты для одной компании", так что вставка одного и того же e-mail должна быть разрешена, но только для разных компаний. Вставка (test@test.com, company-id: 1) и вставка (test@test.com, company-id: 1) не разрешена, но вставка (test@test.com, company-id: 1) и вставка (test@test.com, company-id: 2) разрешена.

Так что я пробовал до сих пор:

static mapping = {
    id column: "customer_id", generator: "identity"
    emailcompany composite: ['emailID', 'company'], unique: true
}

(вроде бы "хорошо", но не совсем то, что я хочу)

НО я не хочу еще один столбец, в моей попытке называется "emailcompany" - но мне нужно что-то вроде уникального ограничения.

8
задан Brad Mace 3 July 2012 в 01:10
поделиться