将枚举列表传递给标准

时间:2010-11-23 05:17:41

标签: grails groovy criteria

我有域名付款

class Payment {
  String name
  PaymentType paymentType
}

PaymentType是ENUM

搜索特定付款类型的所有付款很简单

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

当我想针对多种付款方式搜索所有付款时,即如果params.paymentType是一个数组,我该如何处理这种情况呢?

2 个答案:

答案 0 :(得分:6)

如果paymentType是一个数组,你可以这样做:

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

答案 1 :(得分: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

相关问题