Ich möchte auf mehrere Filter auf Basis Attribute abzufragen und die Kriterien dynamischIteration dynamisch Kriterien bauen Block-
Domain Class
PatientAttr {
def name
def value
}
Kriterien Bauordnung
if(filters.size() != 0){
def criteria = PatientAttr.createCriteria()
def results = criteria.list{
for (item in filters){
def name = item.name
def filter = item.filter
and{
eq 'name', name
if(filter[0] == "lt")
lt ('value', filter[1] as Double)
else if(filter[0] == "gt")
gt ('value', filter[1] as Double)
else
between ('value', filter[0] as Double, filter[1] as Double)
}
}
}
Was ich finde, ist, dass nur die letzte bauen "und" Aussage der Liste wird ausgewertet. Ermöglicht der Kriteriengenerator das dynamische Erstellen von Kriterien?
Der obige Code sollte
def results = criteria.list{
and{
eq 'name', "Serum albumin (g/dL)"
gt 'value', 3.5 as Float
}
and{
eq 'name', "M-spike (g/dL)"
gt 'value', 2.3 as Float
}
}
def results = { criteria.list eq 'name' "Serumalbumin (g/dL)" gt 'Wert', 3.5 als Float eq 'name', "M-Spitze (g/dL)" gt 'wert', 2,3 als Float } – nialloc