Grails - 子类中的唯一约束

标签 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]
}

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

我应该能够为不同的公司添加具有这三个匹配字段的另一个用户。而且,名称是一个可为空的字段,因此我应该能够拥有一些具有相同地址和电话、同一公司 ID 且名称为空的记录。

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

最佳答案

看看这是否是您正在寻找的内容,但请确保首先保存您的公司。

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]
}

关于Grails - 子类中的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15924279/

相关文章:

grails - 从URL下载内容而不提示在Grails中进行身份验证

date - Grails:如何在不创建自定义格式化程序的情况下解析 date.toString() ?

constraints - 为什么这个约束在不同的模拟器上表现不同?

python - scipy.optimize.minimize 约束优化的替代方案?

php - 由数字组成的唯一ID

perl - 在 Perl 中打印出独特的行

hibernate - 服务器重新启动后,将继续创建已删除的字段

security - Grails:加密查询参数,使用散列加密/解密 url 和隐藏字段中的参数

postgresql - Postgres UNIQUE 约束是否意味着索引?

mysql - 查询不同的 ID 对