我有域类:
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
所有时间都返回表中的所有记录,为什么?
答案 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"]
再次,你需要一个信用对象的引用。
查看
上的文档特别是左侧导航栏中Domain Classes下的findAll和findAllBy部分。