java - JPQL SELECT 日期语句之间

标签 java sql jpa jpql

我想将此 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

关于java - JPQL SELECT 日期语句之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33869958/

相关文章:

java - JPA 外键 OneToMany

java - JPA 查询参数不起作用

java - 在什么类型的应用程序或场景中 PL/SQL 作为后端更好?

java - 如何在java中从键盘输入一些单词

Java - 显示字符串内的文本文件内容

java FileInputStream 找不到文件

java - Jboss Java EE 容器和一个 ExecutorService

sql - 我们可以有一个不是任何其他表中的主键的外键吗?

c# - 基本 SQL - 选择

SQL 查询总是使用 filesort in order by 子句