带2个参数的java jpql查询
我对带有2个参数的jpql查询有问题: 以下是查询:带2个参数的java jpql查询,java,jpql,Java,Jpql,我对带有2个参数的jpql查询有问题: 以下是查询: public List<OrganizedUe> findByAcademicYear(Date start, Date end) { SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); String startFormat = format1.format(start.getTime());
public List<OrganizedUe> findByAcademicYear(Date start, Date end)
{
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String startFormat = format1.format(start.getTime());
String endFormat = format1.format(end.getTime());
List<OrganizedUe> list;
String queryString =
"SELECT o FROM OrganizedUe o "
+ "WHERE o.startDate >= :param1 "
+ "AND "
+ "o.endDate <= :param2 "
+ "ORDER BY o.startDate";
Query q = em.createQuery(queryString);
q.setParameter("param1", startFormat);
q.setParameter("param2", endFormat);
list = q.getResultList();
return list;
}
不要转换为字符串,只需使用日期变量即可:
q.setParameter("param1", start);
q.setParameter("param2", end);
如果需要以第一个日期开始,以第二个日期结束(全天),可以在一天的开始/结束时设置:
start.setHour(0);
end.setHour(23);
start.setMinutes(0);
end.setMinutes(59);
// and the same for seconds :)
只需将开始时间设置为0:00:00,结束时间设置为23:59:59。不要转换为字符串,只需使用日期变量即可:
q.setParameter("param1", start);
q.setParameter("param2", end);
如果需要以第一个日期开始,以第二个日期结束(全天),可以在一天的开始/结束时设置:
start.setHour(0);
end.setHour(23);
start.setMinutes(0);
end.setMinutes(59);
// and the same for seconds :)
只需将开始时的时间设置为0:00:00,结束时的时间设置为23:59:59。请说明您是如何在您的实体
OrganizedUe
中定义startDate
和endDate
的,在原来的帖子中添加