Grails Domain-Klasse Einschränkungen für Beziehung zwischen den Feldern
-
19-09-2019 - |
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?
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