如何比较jpql查询中的日期

时间:2015-08-31 21:32:50

标签: jpa jpql

您好我想列出我的数据库中当前日期属于当月的所有当前记录。

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

我确定我在数据库中有一些适合查询的记录但是当我显示结果时没有显示任何语法错误

1 个答案:

答案 0 :(得分:1)

TemporalType.DATE的javadoc中,他们提到:

  

映射为java.sql.Date

但您传递了Calendar endDate参数。

只需像Date参数一样传递startDate实例:

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

PS您应该使用最常用的naming conventions来使代码更具可读性。