QueryでBETWEEN startDate AND endDate等をする時に気をつける事
デバッグしたら、SimpleDateFormatで、StringからDateにフォーマットを変更する時に、時間まで入力しないとデフォルト時間が00:00:00になるので、例えばQueryで、SELECT ... BETWEEN startDate AND endDateなどをする時に、endDateの日のデータがきちんとSELECTできない事に気付きました。
String endDate = "2016-02-20";
Date endDateInDateFormat = new SimpleDateFormat("yyyy-MM-dd").parse(endDate);
上の様にすると、endDateInDateFormatは、2016-02-20 00:00:00、となってしまいます。ということは、2016-02-20の夜中の零時0分01秒以降はQueryのendDateに含まれないという事です。つまり2月20日の昼間のデータも、夕方のデータもSELECTされないってことで、それは問題です。なので、以下ように、時間部分をendDateに付け足しました。
Method findFinishedWorkItemsBetweenStartDateAndEnd ...
これで2月20日、23時59分59秒までのデータがSELECTされます。