ラムダ式フィルタを使用してテーブルから単一の列から従業員の出席記録を取得するためのスプリングMCUコントローラ用のコードはほとんど書いていません。 しかし、Grailsコントローラで同じロジックを適用したいと思います。GrailsでJavaラムダ式フィルタリングを適用する方法
おかげで、私は(レコードを数える)、あなたのような何かを試みることができるそれを正しく理解すれば
ラムダ式フィルタを使用してテーブルから単一の列から従業員の出席記録を取得するためのスプリングMCUコントローラ用のコードはほとんど書いていません。 しかし、Grailsコントローラで同じロジックを適用したいと思います。GrailsでJavaラムダ式フィルタリングを適用する方法
おかげで、私は(レコードを数える)、あなたのような何かを試みることができるそれを正しく理解すれば
:あなたのケースでは
long totalAbsentDays
= presentMonthAtten.findAll{ it.status == Constant.ABSENT }.size()
同じコレクション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()
うわー。私はこれを実装しようとしている。もし何か問題に直面すれば、私はあなたに知らせて、ただ案内する。 – Ranjan
ここでは例外がありますが、そのようなプロパティはありません:クラスのmaterialStatus:java.lang.String === poStatus = PurchaseOrder.executeQuery( 'PurchaseOrderからMaterialStatusを選択') def data = poStatus.inject([:]。withDefault {0}){accum、record - > switch(record.materialStatus){、私の購入注文calssには変数materialStatusがあります。 – Ranjan
Stringオブジェクトの 'materialStatus'プロパティにアクセスしようとしています。 'switch(record){...} 'を使用する必要があります。 – injecteer
は微ようだが、中括弧の後に意味は「それ」は何ですか? – Ranjan
私はそれを持って感謝します。 – Ranjan
これは自動的に使用可能なデフォルトの反復子変数です。また、 'presentMonthAtten.findAll {record-> record.status == Constant.ABSENT} .size()' – susi