以下は、正常に動作し、mysql コンソールで期待どおりの結果が得られる mysql クエリです。
select * from omni_main as t where t.date_time BETWEEN STR_TO_DATE(CONCAT('2011', '08', '01'),'%Y%m%d') AND LAST_DAY(STR_TO_DATE(CONCAT('2012', '08','01'), '%Y%m%d')) group by year(date_time),month(date_time)
JPA に相当するクエリが必要です。以下は私が試していることですが、何も返されません。
String queryStr = "select * from OmniMainEntity o where o.dateTime BETWEEN STR_TO_DATE(CONCAT('"+fromYear+"', '"+fromMonth+"','01'), '%Y%m%d') AND "
+"LAST_DAY(STR_TO_DATE(CONCAT('"+toYear+"', '"+toMonth+"','01'), '%Y%m%d'))";
Query query = manager.createQuery(queryStr);
System.out.println("Result Size: "+query.getResultList().size());
ここfromYear
でfromMonth
、toYear
、toMonth
は、 を作成する際に使用するメソッド パラメータqueryStr
です。
私が間違っているかもしれない場所を提案してください!
目標を達成するための他の方法も大歓迎です!