Jpa 如何在jpql查询中比较日期

Jpa 如何在jpql查询中比较日期,jpa,jpql,Jpa,Jpql,嗨,我想列出我的数据库中日期属于当前月份的所有当前记录 where d.jourvisite BETWEEN :startDate AND :endDate 这是我的职责 public List<Visite> getvisiteDétaillé() { Calendar MyEnddate; MyEnddate = Calendar.getInstance(); MyEnddate.add(Calendar.MONTH, 1); Typed

嗨,我想列出我的数据库中日期属于当前月份的所有当前记录

where d.jourvisite BETWEEN :startDate AND :endDate
这是我的职责

    public List<Visite> getvisiteDétaillé() {
    Calendar MyEnddate;
    MyEnddate = Calendar.getInstance();
    MyEnddate.add(Calendar.MONTH, 1);
    TypedQuery<Visite> query;
    query =
    em.createQuery("SELECT v FROM Visite v JOIN v.datevisiteList d where d.jourvisite BETWEEN :startDate AND :endDate", Visite.class);
    query.setParameter("startDate",Calendar.getInstance().getTime());
    query.setParameter("endDate",MyEnddate,TemporalType.DATE);
    System.out.println("date actual"+Calendar.getInstance().getTime());
    System.out.println("date After 30 days"+MyEnddate.getTime());
    return query.getResultList();
}
public List getvisitoredétaillé(){
日历日期;
MyEnddate=Calendar.getInstance();
MyEnddate.add(Calendar.MONTH,1);
类型查询;
质疑=
em.createQuery(“从Visite v中选择v并加入v.datevisiteList d,其中d.jourvisite介于:startDate和:endDate之间”,Visite.class);
setParameter(“startDate”,Calendar.getInstance().getTime());
setParameter(“endDate”,MyEnddate,TemporalType.DATE);
System.out.println(“实际日期”+Calendar.getInstance().getTime());
System.out.println(“30天后的日期”+MyEnddate.getTime());
返回query.getResultList();
}
我确信我在数据库中有一些适合查询的记录,但当我显示结果时,在javadoc中没有任何显示,没有语法错误,因为它们提到:

映射为
java.sql.Date

但是您正在为
endDate
参数传递
日历

只需像对待
startDate
参数那样传入
Date
实例:

query.setParameter("endDate", MyEnddate.getTime());

PS您应该遵循最常用的方法来提高代码的可读性。

使用“无语法错误”是指:运行时没有错误或异常?是的!!没有错误..只是我在system.outpls中写的内容编辑原始问题,因为它可能会混淆其他人,调用的SQL是什么?(在JPA提供商的日志中)。