41

は簡単なGrailsのドメインクラスを仮定しますGrailsのドメインクラス:ユニーク制約を複数の列の

class Account { 
    String countryId; 

    String userName; 

    String password; 

    static constraints = { 
     ...???... 
    } 
} 

このようにユニーク contraintがなければならない、ユーザー名が特定の countryIdに対して一意であることを必要とされます2つの列に表示されます。どのように制約の定義でこれを表現するのですか?

+4

が、私は答えを見つけることなく、ウェブを閲覧し、特定のstackoverflowにされました。最終的に、私は[Grailsのリファレンス](http://grails.org/doc/1.0.x/ref/Constraints/unique.html)で解決策を見つけましたが、Grailsの他のすべてのドキュメントの例では、単一の列のケースのみが扱われていました。 8時間以内に自己回答が許可されないことを知らなかった – rainer198

答えて

73
userName(unique: ['countryId']) 

ユーザー名の「ユニーク」制約に考慮されなければならない他のプロパティを構成する配列のような他の多くのプロパティを含めることができます。

したがって、たとえば、あなたはそれが次のようになりますcountryIdprovinceIduserNameを一意にしたい場合:

userName(unique: ['countryId', 'provinceId'] 
+1

grailsでロックする –

+0

grails 3では "userName unique: 'countryId'"と書かれています http://docs.grails.org/latest/ref/Constraints /unique.html –

+2

@CarlosParragaは同じことの単なる変形です。 Grailsのバージョン3.x以前でも、同じ構文を使うことができます。 –

関連する問題