2010-11-23 5 views
3

J'ai un domaine paiementPasser Enum Liste aux critères

class Payment { 
    String name 
    PaymentType paymentType 
} 

PaymentType est un ENUM

pour rechercher tous les paiements d'un type de paiement particulier est simple

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

comment peut je gère la situation quand je veux rechercher tous les paiements contre plus d'un type de paiement, c'est à dire si params.paymentType est un tableau?

Répondre

6

Si paymentType est un tableau, vous pouvez faire quelque chose comme ceci:

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

Merci beaucoup ataylor pour votre réponse rapide :) –

0

@ataylor:

Je ne suis pas vraiment sûr .. mais on doit bien pouvoir

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

ou vous obtiendrez une erreur

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

Questions connexes