Criteria APIによるフォームの入力値保持時の不具合
今の業務で画面のフォームに入力された値を元にバッチをキックするって機能があるんですが、ユーザからの問い合わせで「バッチがキックされない」「複数回キックされてるように見える」って問い合わせが来て原因を調査することに。
調べてみると実行ユーザ及びフォームに入力された内容を一旦mapに格納しそれをcriteriaで持ちまわっているようです。
で、複数人で同じ処理を実行するとこのcriteriaにセットした値が後から実行した人の情報で上書きされてしまうらしく、後勝ちの人は複数回実行されているように見え、先に実行した人は実行されていないように見える…というのが事象な模様。
そもそもcriteriaってクエリ発行するためのAPIで、こんな風にフォームの内容を保持して持ちまわるって使い方はあっているんだろうか・・・。
対応策としてcriteriaにはセットせずmapのまま持ちまわる事で解消できそうなんですが、なんだかなぁといった状況。
どっかにいいリファレンスとかあれば教えてください…。
===========================================================
2017/10/06追記
上書きされてしまうのはメソッド内でnew定義していなかった為らしい…。
グローバルで定義していたcriteriaを使いまわしているとNGと。
javaもっかい勉強しよ…。