日期声明之间的 JPQL SELECT [关闭]
Posted
技术标签:
【中文标题】日期声明之间的 JPQL SELECT [关闭]【英文标题】:JPQL SELECT between date statement [closed] 【发布时间】:2011-07-18 02:01:17 【问题描述】:我想将此 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 ;
我做错了什么?谢谢。
【问题讨论】:
【参考方案1】:试试这个查询(将t.eventsDate
替换为e.eventsDate
):
SELECT e FROM Events e WHERE e.eventsDate BETWEEN :startDate AND :endDate
【讨论】:
【参考方案2】: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();
【讨论】:
我不明白这个查询与问题中的查询有何不同。另外,endDate 之前不应该有:
吗?为什么在 startDate 之后和 end endDate 之后有 2 个单引号?以上是关于日期声明之间的 JPQL SELECT [关闭]的主要内容,如果未能解决你的问题,请参考以下文章