Grails的。域类。 1:米

时间:2010-11-28 14:53:55

标签: grails gorm

我有域类:

package test

class Credit {

 String name;


 static hasMany = [debts : Debt]

    static constraints = {
    }
}

package test

class Debt {


 Integer amount;
 Date date;


 static belongsTo =[credits: Credit]

    static constraints = {
    }
}

需要:选择max: 10; order: "desc";与sort: "date"

相关联的Сredit.get(id)行债务

我该怎么做?

溶液

Debt.findAllByCredits(Credit.get(params.id),[max:10, sort:"date",order:"desc"])

但关于这个例子的下一个问题:

为什么,这段代码有效:

def ok = Debt.findAllByCredits(Credit.get(params.id),[max:10, sort:"date",order:"desc"])


println "true:" + ok

但是这段代码不正确:

def dd = new Debt(credits: Credit.get(params.id))

def wrong =Debt.findAll(dd)

println "no: "+ wrong

所有时间都返回表中的所有记录,为什么?

1 个答案:

答案 0 :(得分:1)

你可以做点什么

 def hql = "select d from Debt d where credits = ? order by d.date desc"
 Debt.findAll(hql, [credit], [max:10])

你可能需要调整它,但类似的东西应该有用。另请注意,我假设您有一个债权的实例,即债务的父母。

您还可以使用Grails在运行时根据类的属性动态生成的方法

Debt.findAllByCredit(credit,  [max:10,sort:"date",order:"desc"]

再次,你需要一个信用对象的引用。

查看

上的文档

http://grails.org/doc/latest/

特别是左侧导航栏中Domain Classes下的findAll和findAllBy部分。