我在以下示例类之间有一对多的关系:
Class Home {
static hasMany = [loans: Loan]
int numStories
}
Class Loan {
static belongsTo = [Bank]
Home home
int yearIssued
}
Class Bank {
SortedSet loans
static hasMany = [loans: Loan]
boolean active
}
我正在尝试编写一个命名查询,以获取所有在 2007 年对 2 层楼的房屋发放贷款的活动银行对象。在名为Queries 的银行中,我尝试过:
static namedQueries = {
myNamedQuery { yearIssued, numStories ->
eq 'active', true
loans {
gt 'yearIssued', yearIssued
home {
eq 'numStories', numStories
}
}
}
}
如果我删除上面的“home { eq ... }”部分,查询工作正常,只是不限于 2 个故事。如上所述执行时,我收到一个 groovy.lang.MissingMethodException 错误,例如:
No signature of method: package.stuff.Home.call() is applicable for argument types
(package.stuff.Bank$__clinit__closure3_closure10_closure20_closure21)
values: [package.stuff.Bank$__clinit__closure3_closure10_closure20_closure21@746231ed];
Possible solutions: wait(), last(), save(), any(), getAll(), wait(long)"
我如何将银行返还给那些在两层楼上拥有贷款的银行?