41

Giả sử một lớp Grails miền đơn giản:Grails lớp miền: hạn chế duy nhất cho nhiều cột

class Account { 
    String countryId; 

    String userName; 

    String password; 

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

Nó là cần thiết rằng tên người dùng là duy nhất cho một đặc biệt countryID, do đó phải có một độc đáo contraint trên hai cột. Làm thế nào để diễn đạt điều này trong các ràng buộc định nghĩa?

+4

Tôi đang xem web và trong stackoverflow cụ thể mà không tìm ra câu trả lời. Cuối cùng, tôi đã tìm ra giải pháp trong [Grails reference] (http://grails.org/doc/1.0.x/ref/Constraints/unique.html) mặc dù tất cả các ví dụ tài liệu Grails khác chỉ liên quan đến trường hợp cột đơn. Không biết rằng tự trả lời không được phép trong vòng 8 giờ – rainer198

Trả lời

73
userName(unique: ['countryId']) 

Bạn có thể bao gồm nhiều thuộc tính khác trong mảng tạo nên các thuộc tính khác phải được xem xét trong ràng buộc "duy nhất" trên tên người dùng.

Vì vậy, ví dụ nếu bạn muốn làm userName duy nhất trong một countryIdprovinceId nó sẽ trông như thế này:

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

bạn đá với grails –

+0

Trong grails 3 nó được viết "userName unique: 'countryId'" http://docs.grails.org/latest/ref/Constraints /unique.html –

+2

@CarlosParraga đó chỉ là một biến thể của cùng một điều. Cú pháp tương tự có thể được sử dụng với các phiên bản của Grails trước khi 3.x là tốt. –

Các vấn đề liên quan