JPQL SELECT between date statement

JavaSqlJpaJpql

Java Problem Overview


I would like to convert this SQL statement to a JPQL equivalent.

SELECT * FROM events
WHERE events_date BETWEEN '2011-01-01' AND '2011-03-31';

This correctly retrieves the information from the table events.

In my Events entity

   @Column(name = "events_date")  
   @Temporal(TemporalType.DATE)  
   private Date eventsDate;

So far this is what I have but it is not working.

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 ;  
}

What am I doing wrong? Thanks.

Java Solutions


Solution 1 - Java

Try this query (replace t.eventsDate with e.eventsDate):

SELECT e FROM Events e WHERE e.eventsDate BETWEEN :startDate AND :endDate

Solution 2 - Java

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();

}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMamadouView Question on Stackoverflow
Solution 1 - JavaMatt HandyView Answer on Stackoverflow
Solution 2 - JavaGuntashView Answer on Stackoverflow