2014-02-24 35 views
1

我有..to不同我list..this一個問題是我的代碼..如何清除createCriteria中的列表?

域:

class City { 
    String city 
    static constraints = { 
     city(blank:false,unique:false) 
    } 
} 

class Financial { 
    String financial 
    String description 
    static constraints = { 
     financial(blank:false,unique:false) 
    } 
} 

class Bank { 
    Financial financial 
    City city 
    static constraints = { 
     financial(blank:false) 
    } 
} 

我想創建域銀行的列表,使用此代碼:

def index= { 
     params.max = Math.min(params.max ? params.int('max') : 10, 100) 

     if(!params.sort && !params.order) 
     { 
      params.sort = "city" 
      params.order = "desc" 
     } 
     def c = Bank.createCriteria() 
     def results = c.list(params) 
     { 
      if(params.financial) 
      { 
       financial{     
        ilike("financial", "%${params.financial}%")s 
       } 

      } 

     } 

     [bankdetaillist: results,bankdetaillisttotal:results.totalCount, financial: params.financial?:""] 
    } 

如果我創建了一個銀行,例如..

Table bank : 

id | version | city | financial 
------------------------------- 
0 | 0 | 1 | 1   
1 | 0 | 5 | 1 

從這個案例中,我們知道了銀行與金融1有很多城市...

而且我想顯示它與外勤金融不同銀行列出。

回答

1

對於你想要的,createCriteria似乎有點矯枉過正。怎麼樣:

Financial finRecord = Financial.findByFinancial(params.financial) 
List<Bank> banksForFin = Bank.findAllByFinancial(finRecord,[sort: "city", order: "desc"]) 
+0

這樣?? ?? DEF金融= Financial.findByFinancial(params.financial) \t \t列表 banksForFin = Bank.findAllByFinancial(finRecord,[排序: 「城市」,爲了 「降序」]) \t \t [bankdetaillist:banksForFin,bankdetaillisttotal: banksForFin.totalCount,財務:params.financial ?:「」] – akiong

+0

您將需要banksForFin.size()而不是totalCount。此外,如果需要,可以將params.sort/order替換爲findAllBy參數映射,而不是我的硬編碼值。 – shuttsy

+0

我可以使用executeQuery嗎? – akiong