41

Supongamos que un simple clase Griales dominio:Griales clase de dominio: restricción única para múltiples columnas

class Account { 
    String countryId; 

    String userName; 

    String password; 

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

Se requiere que los nombres de usuario son únicos para una determinada CountryId, por tanto, tiene que haber una única contraint en dos columnas ¿Cómo expresar esto en la definición de restricciones?

+4

estaba navegando por la web y en particular stackoverflow sin encontrar respuesta. Al final, encontré la solución en la [referencia de Grails] (http://grails.org/doc/1.0.x/ref/Constraints/unique.html) aunque todos los demás ejemplos de documentación de Grails solo contienen el caso de columna única. No sabía que la respuesta automática no está permitida dentro de las 8 horas – rainer198

Respuesta

73
userName(unique: ['countryId']) 

Puede incluir tantas otras propiedades de la matriz que forman las otras propiedades que deben ser considerados en la restricción "única" en el nombre de usuario.

Así, por ejemplo, si desea hacer userName único dentro de una countryId y provinceId que se vería así:

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

que se balancea con grails –

+0

En grails 3 está escrito "userName unique: 'countryId'" http://docs.grails.org/latest/ref/Constraints /unique.html –

+2

@CarlosParraga eso es solo una variante de lo mismo. Esa misma sintaxis se puede usar con versiones de Grails anteriores a 3.x también. –

Cuestiones relacionadas