Domanda

Il dottore di riferimento dice che il vincolo di dimensione:

  

Utilizza una gamma Groovy per limitare la dimensione di una collezione o di numero o   la lunghezza di una stringa.

Quando ho messo un vincolo dimensioni su un intero, ho un avvertimento

  

Proprietà [prop] della classe di dominio theClass è di tipo   [Java.lang.Integer] e non supporta vincolo [size]. Questo   vincolo non verrà controllato durante la convalida.

E 'il documento che non va?

So che potrei usare gamma ma sarebbe generalmente più facile da essere in grado di specificare la quantità di cifre del numero, piuttosto che il valore effettivo (come un numero di sicurezza sociale deve avere 7 cifre o qualunque cosa sia, piuttosto che fare una serie di 1000000 -. 9999999)

È stato utile?

Soluzione

Se si desidera che il numero di cifre, assicurarsi che sia positivo e ha una certa lunghezza:

myInteger( validator: {
   return it > 0 &&  (it.toString.length) == 7
})

Altri suggerimenti

Ho trovato la risposta mentre la ricerca JIRA: http://jira.codehaus.org/browse / graal-947 . Il doc è sbagliato.

  

Non abbiamo bisogno di minSize, maxSize e vincoli di formato per i campi numerici   più in quanto questa funzionalità è su min, max e vincoli di gamma   rispettivo. Così abbiamo marcatura questi vincoli (solo per i campi numerici)   come deprecated in 0,5 e verrà rimosso in 0.6.

Sembra che tocca al validatore personalizzato.

È inoltre possibile utilizzare max per vincolare un numero intero come myIntProp (max: 9999999)

scroll top