如何从createCriteria中区分列表?

时间:2014-02-24 06:53:11

标签: grails 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 个答案:

答案 0 :(得分:0)

对于你想要的东西,createCriteria似乎有点矫枉过正。怎么样:

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