2016-01-15 2 views
0

Так мне было интересно, как бы я искать экземпляр вторичного домена, если этот домен имел переменную, которая была основным экземпляром домена:Grails createCriteria() список(). Для связанных доменов

def postFieldTripList = PostFieldTrip.createCriteria().list(sort: params.sort, order: params.order) 
    { 
     and 
     { 
      'in' ("fieldTrip.location", ["fieldTrip.%${params.fieldTrip}%"]) //figure out how to search by trip location 
     } 
    } 

Так есть домен с местоположениями, которые я могу добавить, и поле Post Fieldtrip может вызывать это конкретное местоположение, но как я могу создать этот критерий, где я могу искать по названию местоположения?

ответ

1

Да, вы можете ссылаться на поле в синтаксисе скобки:

def postFieldTripList = PostFieldTrip.createCriteria().list(sort: params.sort, order: params.order) 
    { 
     fieldTrip 
     { 
      'in' ("location", ["fieldTrip.${params.fieldTrip}"]) 
     } 
    } 

(and подразумевается и не надо.)

+0

Я, вероятно, делать что-то неправильно, но я получаю ошибку: org.codehaus .groovy.runtime.GStringImpl не может быть добавлен в java.lang.String – tmurphy

+0

@tmurphy Попробуйте вызвать '.toString()' на нем. – Igor

+0

Это просто приносит еще одну ошибку, говоря, что она не может разрешить свойство. Означает ли это что-либо, если в GGTS fieldTrip подчеркивается в случае fieldTrip {....} – tmurphy

Смежные вопросы