带2个参数的java 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());

我对带有2个参数的jpql查询有问题:

以下是查询:

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
的,在原来的帖子中添加