41

Załóżmy prostą klasę Grails domeny:Grails klasy domeny: UNIQUE dla wielu kolumn

class Account { 
    String countryId; 

    String userName; 

    String password; 

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

Wymagane jest, że nazwy użytkowników są unikatowe dla konkretnego countryid, więc nie musi być wyjątkowy contraint na dwóch kolumnach. Jak wyrazić to w definicji ograniczeń?

+4

byłem przeglądania stron internetowych w szczególności stackoverflow bez znalezienia odpowiedzi. Ostatecznie znalazłem rozwiązanie w [odniesienie do Grails] (http://grails.org/doc/1.0.x/ref/Constraints/unique.html), chociaż wszystkie inne przykłady dokumentacji Grails dotyczą tylko przypadku pojedynczej kolumny. Nie wiedziałem, że samodzielne udzielanie odpowiedzi jest niedozwolone w ciągu 8 godzin – rainer198

Odpowiedz

73
userName(unique: ['countryId']) 

Można dołączyć tyle samo właściwości w tablicy, które tworzą inne właściwości, które muszą być uwzględnione w "unikalnym" ograniczeniu nazwy użytkownika.

Tak więc, na przykład, jeśli chcesz zrobić userName wyjątkowy w countryId i provinceId to będzie wyglądać następująco:

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

grasz z grails –

+0

W grails 3 jest napisane "userName unique: 'countryId'" http://docs.grails.org/latest/ref/Constraints /unique.html –

+2

@CarlosParraga to tylko wariant tego samego. Ta sama składnia może być użyta także w wersjach Grails przed 3.x. –

Powiązane problemy