2012-03-30 93 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'類型?它會讓你更容易。 – 2012-03-30 11:49:26

+0

我已將狀態更改爲枚舉類型。枚舉狀態{ \t \t ACTIVE(真), \t \t無效(假) \t \t私人布爾布爾 \t \t公共狀態(布爾布爾){ \t \t \t this.bool =布爾 \t \t} \t} – 2012-03-30 13:23:35

回答

2

嘗試使用withCriteria

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

對不起,但我們必須使用這段代碼??在域類或其他地方? – 2012-03-30 13:19:02

+0

@AB - 我沒有跟着你。你的控制器和視圖如何設置?你只是使用腳手架?如果是這樣,您可能必須爲您的「ServiceGroup」域「生成全部」,並修改生成的控制器的「列表」操作。 – 2012-03-30 13:25:53