Pergunta

Preciso escrever uma restrição de classe de domínio no Grails que diz que um campo inteiro deve ser maior ou igual que o outro.

Quando escrevo o código assim:

class MyDomain {

 String title
 int valueMin = 1
 int valueMax = 1

 static constraints = {
  valueMin(min:1)
  valueMax(min:valueMin)
 }
}

Estou recebendo um erro:

Caused by: groovy.lang.MissingPropertyException: No such property: valueMin for class: MyDomain

Alguma ideia, por favor?

Foi útil?

Solução

http://grails.org/doc/latest/ref/constraints/validator.html

Isso deve mais ou menos trabalho (não testado)

class MyDomain {

 String title
 int valueMin = 1
 int valueMax = 1

 static constraints = {
  valueMin(min:1)
  valueMax(validator:{
    value, reference ->
    return value > reference.valueMin
  })
 }
}

Outras dicas

Isso não funcionará, porque as restrições são um bloco estático de código que só terá acesso a variáveis ​​estáticas.

Então, você pode escrever seu próprio cosntraint personalizado, se quiser:Dê uma olhada neste link:http://grails.org/doc/latest/guide/single.html#7.Validação

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top