您好我想列出我的数据库中当前日期属于当月的所有当前记录。
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();
}
我确定我在数据库中有一些适合查询的记录但是当我显示结果时没有显示任何语法错误
答案 0 :(得分:1)
在TemporalType.DATE
的javadoc中,他们提到:
映射为
java.sql.Date
。
但您传递了Calendar
endDate
参数。
只需像Date
参数一样传递startDate
实例:
query.setParameter("endDate", MyEnddate.getTime());
PS您应该使用最常用的naming conventions来使代码更具可读性。