2012-03-30 4 views
-2

У меня есть два класса домена.Список фильтров в grails

class BillingServiceGroup 
{ 
    Integer billingServiceGroupCode 
    String billingServiceGrpDesc 
    String status // ACTIVE or INACTIVE 
} 

class ServiceGroup 
{ 
    String serviceGroupName 
    String description 
    BillingServiceGroup billingServiceGroup 
} 

, когда я просматриваю страницу serviceGroup. он показывает список всех billingServiceGroup, но мое требование состоит в том, что в списке могут отображаться только строки, имеющие status == ACTIVE.

поэтому мне нужно отфильтровать список в зависимости от значения статуса. может ли кто-нибудь предоставить некоторый код для реализации этой логики?

+1

Почему ваш 'status' поле не' boolean' или 'enum' типа? Это облегчит вам жизнь. –

+0

Я изменил статус на тип перечисления. перечисление Статус { \t \t ACTIVE (истина), \t \t АКТИВНО (ложь) \t \t частное булево BOOL \t \t общественное положение (логическое BOOL) { \t \t \t this.bool = BOOL \t \t} \t} –

ответ

2

Попробуйте использовать withCriteria:

ServiceGroup.withCriteria { 
    billingServiceGroup { 
     eq('status', 'ACTIVE') 
    } 
} 
+0

Извините, но где мы должны использовать этот код? В классе домена или где-то еще? –

+0

@AB - Я не пойду за тобой. Как настроены ваши контроллеры и представления? Вы просто используете строительные леса? Если это так, вам, вероятно, придется «генерировать все» для вашего домена «ServiceGroup» и изменять действие «list» сгенерированного контроллера. –

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