我在域类中使用带有投影的命名查询。我希望命名查询使用以下等式返回其中一个值:
sum(x * y) / sum(y)
我熟悉映射中的公式并尝试执行以下操作:
def formVar
static mapping = {
formulaVar formula: 'sum(x * y) / sum(y)'
}
这里的任何帮助都很棒。
答案 0 :(得分:1)
我可能会误解您的问题,但您可能想查看beforeUpdate和beforeInsert事件。
此块中的代码允许您在插入/更新它们之前预先形成计算并操作域类属性。
Grails手册http://grails.org/doc/2.3.7/guide/GORM.html#eventsAutoTimestamping
中记录了这一点答案 1 :(得分:1)
行。得到这样的工作:
class SumThing {
Double sumVar
static namedQueries = {
sums { op ->
projections {
property "sumVar"
}
}
}
static mapping = {
version false
columns {
sumVar formula: 'SUM(X * Y) / SUM(Y)'//X and Y being actual column names from your database
}
}
}