我有一个看起来像这样的领域模型(Domain Model)
Category 1 ------- * Type 1 ------- * Expense
或用英语“费用有一种类型,每种类型都属于一个类别”。我想编写一个条件查询,该查询将查找特定类别中的所有费用。我都尝试过
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
}
最佳答案
根据声明关联的方式,类型表可能未加入查询。您可以明确地告诉它在您的条件中加入join
。
Expense.withCriteria {
join('type')
type {
eq('category', someCategoryInstance)
}
}
关于hibernate - Groovy标准查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3960441/