Frage

Ich brauche Domain-Klasse Einschränkung in Grails zu schreiben, die besagt, dass ein Integer-Feld als die andere größer oder gleich sein müssen.

Wenn ich schreibe den Code wie folgt:

class MyDomain {

 String title
 int valueMin = 1
 int valueMax = 1

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

Ich erhalte Fehler:

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

Jede Idee, bitte?

War es hilfreich?

Lösung

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

Dies sollte mehr oder weniger Arbeit (nicht getestet)

class MyDomain {

 String title
 int valueMin = 1
 int valueMax = 1

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

Andere Tipps

Das wird nicht funktionieren, weil die Einschränkungen ein statischer Code-Block, die nur den Zugriff auf statische Variablen haben.

So können Sie Ihre eigene angepasste cosntraint schreiben, wenn Sie wollen: werfen Sie einen Blick auf diesen Link: http://grails.org/doc/latest/guide/single.html# 7 . Validation

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top