【发布时间】:2016-07-15 09:07:44
【问题描述】:
我已经为我的 spring mvc 控制器编写了一些代码,用于使用 lambda 表达式过滤器从我的表中的单个列中获取员工出勤记录。 但我想在我的 Grails 控制器中应用相同的逻辑。
谢谢
【问题讨论】:
标签: hibernate spring-mvc grails grails-orm
我已经为我的 spring mvc 控制器编写了一些代码,用于使用 lambda 表达式过滤器从我的表中的单个列中获取员工出勤记录。 但我想在我的 Grails 控制器中应用相同的逻辑。
谢谢
【问题讨论】:
标签: hibernate spring-mvc grails grails-orm
在您的情况下,迭代同一个集合 4(!!!)次并产生 4 个新集合的直接方法也是性能最低的方法。
我会这样说:
import static Constant.*
def data = presentMonthAtten.inject( [:].withDefault{ 0 } ){ accum, record ->
switch( record.status ){
case ABSENT: accum.absent++; break
case PRESENT: accum.present++; break
// other cases
}
accum
}
//....
attendDashBoard.currentMonthAbsentAttn = data.absent.toString()
【讨论】:
materialStatus。看起来你应该使用switch( record ){ ... }
如果我理解正确(计算记录),您可以尝试以下操作:
long totalAbsentDays
= presentMonthAtten.findAll{ it.status == Constant.ABSENT }.size()
【讨论】: