我有一个看起来像这样的域名模型
Category 1 ------- * Type 1 ------- * Expense
或者用英语“费用有类型,每种类型属于一个类别”。我想写一个Criteria查询,它将查找特定类别中的所有费用。我试过这两个
Expense.withCriteria {
eq('type.category', someCategoryInstance)
}
和这个
Expense.withCriteria {
type {
eq('category', someCategoryInstance)
}
}
但它们都不起作用,我错过了什么?
我被要求显示域类,所以这里是:
public class Category {
String description
static hasMany = [types: Type]
}
public class Type {
String description
static hasMany = [expenses: Expense]
static belongsTo = [category: Category]
}
public class Expense {
static belongsTo = [type: Type]
Date date
String description
float amount
}
答案 0 :(得分:1)
根据声明关联的方式,类型表可能不会加入查询。您可以明确告诉它在您的条件中加入join
。
Expense.withCriteria {
join('type')
type {
eq('category', someCategoryInstance)
}
}