我已经为spring mvc Controller 编写了一些代码,以便使用lambda表达式过滤器从表的单个列中获取员工出勤记录。
但是我想在我的Grails Controller 中应用相同的逻辑。

看看hibernate - 如何在Grails中应用Java Lambda表达式过滤-LMLPHP碎石。

谢谢

最佳答案

在您的情况下,直接迭代同一集合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()

10-01 02:24