下面是 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
。
请提出我可能错的地方!
也欢迎任何其他实现目标的方式!