Ich bemerkte etwas Verhalten, das ich nicht ganz verstehe. Es ist möglich, Abfragen solange zu verknüpfen, bis die Abfrage von einer Funktion nicht zurückgegeben wurde.GORM Wo Abfragezusammensetzung auf Rückgabewert
def w = Subscription.where { topicId == 1 }
w.where { user.id == 1 }.findAll()
//works as expected
def f() {
Subscription.where { topicId == 1 }
}
f().where { user.id == 1 }.findAll()
//doesn't filter by user.id
def f() {
Subscription.where { topicId == 1 }
}
f().build { eq 'user.id', 1L }
//works
Ich habe nichts gegen die Verwendung von DetachedCriteria # build(). Ich möchte nur :-D
--- bearbeiten
Grails 2.4.2
Warum versuchen Sie nicht 'findAllBy()' und createCriteria mit 'alias' zu verwenden? –
@MikelisBaltruks Nun, es gibt kein Problem zu lösen, ich würde nur gerne verstehen, warum Groovy sich so verhält. Auch der obige Code ist nur ein minimales Beispiel. – kvbx