2

アプリケーションに次の 2 つのクラスがあるとします。

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

本当に基本的なこと。users フィールドの Company クラスに制約を加えたいと思います。同じ会社に同じ名前の住所と電話番号を持つ 2 人のユーザーがいないこと。

別の会社のこの 3 つの一致するフィールドを持つ別のユーザーを追加できるはずです。また、name は null 許容フィールドであるため、名前が null である同じ会社 ID に対して、同じ住所と電話番号を持ついくつかのレコードを持つことができるはずです。

誰かがそのような制約を定義するのを手伝ってくれませんか?

4

1 に答える 1

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]
}
于 2013-04-10T11:55:21.673 に答える