2010-11-23 3 views
3

У меня есть домен ОплатаПередача Enum List критериям

class Payment { 
    String name 
    PaymentType paymentType 
} 

PaymentType является ENUM

искать все платежи конкретного вида платежа проста

def results = Payment.createCriteria.list = { 
    'in' ('paymentType', PaymentType.valueOf(params.paymentType)) 
} 

как можно я обрабатываю ситуацию, когда хочу искать все платежи против более одного типа платежа, т. е. если params.paymentType является массивом?

ответ

6

Если paymentType массив, вы можете сделать что-то вроде этого:

def results = Payment.createCriteria().list { 
    'in' ('paymentType', params.paymentType.collect{PaymentType.valueOf(it)}) 
} 
+0

Большое спасибо ataylor за ваш быстрый ответ :) – 2010-11-25 12:07:50

0

@ataylor:

Я не совсем уверен .. но это не должно быть

def results = Payment.createCriteria().list { 'in' ('paymentType',new params.paymentType.collect{PaymentType.valueOf(it)}) }

или вы получите сообщение об ошибке

groovy.lang.MissingPropertyException: No such property: params for class: grails.orm.HibernateCriteriaBuilder

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