假设我的应用程序中有这两个类:
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/