Grails - 子类中的唯一约束

时间:2013-04-10 11:13:47

标签: grails constraints unique

假设我的应用程序中有两个类:

 class User 
{
    static belongsTo = [company: Company]
    Address address
    Phone phone
    String name
    Integer salary
    Date birthDate
}

class Company {

Boolean active = false

static hasMany = [users: User]
}

非常基本的东西。 我想在用户字段的公司类中进行约束。我不会在同一家公司拥有两个同名地址和电话的用户。

我应该能够为另一家公司添加另外三个匹配字段的用户。而且,name是一个可以为空的字段,所以我应该能够为同一个公司ID提供一些具有相同地址和电话的记录,名称为null。

有人可以帮我定义这样的约束吗?

1 个答案:

答案 0 :(得分:2)

看看这是否是您要找的,但请确保您的公司先保存。

Company.withTransaction {
    def compnay= new Company (active:true)
    company.save(flush:true)

    def user = new User (...)
    compnay.addToUsers(user)
}

/

class User 
{
    static belongsTo = [company: Company]
    Address address
    Phone phone
    String name
    Integer salary
    Date birthDate


    static constraints = {
      name  unique: ['company','address','phone']
   }
}

/

class Company {

Boolean active = false

static hasMany = [users: User]
}