Ответ 1
Попробуйте этот запрос (замените t.eventsDate
на e.eventsDate
):
SELECT e FROM Events e WHERE e.eventsDate BETWEEN :startDate AND :endDate
Я хотел бы преобразовать этот оператор SQL в эквивалент JPQL.
SELECT * FROM events
WHERE events_date BETWEEN '2011-01-01' AND '2011-03-31';
Это правильно извлекает информацию из таблицы events
.
В моей организации events
@Column(name = "events_date")
@Temporal(TemporalType.DATE)
private Date eventsDate;
Пока это то, что у меня есть, но оно не работает.
public List<Events> findAllEvents(Date startDate, Date endDate) {
List<Events> allEvents = entityManager.createQuery(
"SELECT e FROM Events e WHERE t.eventsDate BETWEEN :startDate AND :endDate")
.setParameter("startDate", startDate, TemporalType.DATE)
.setParameter("endDate", endDate, TemporalType.DATE)
.getResultList();
return allEvents ;
}
Что я делаю неправильно? Спасибо.
Попробуйте этот запрос (замените t.eventsDate
на e.eventsDate
):
SELECT e FROM Events e WHERE e.eventsDate BETWEEN :startDate AND :endDate
public List<Student> findStudentByReports(Date startDate, Date endDate) {
System.out.println("call findStudentMethd******************with this pattern"
+ startDate
+ endDate
+ "*********************************************");
return em
.createQuery(
"' select attendence from Attendence attendence where attendence.admissionDate BETWEEN : startDate '' AND endDate ''"
+ "'")
.setParameter("startDate", startDate, TemporalType.DATE)
.setParameter("endDate", endDate, TemporalType.DATE)
.getResultList();
}