将datetime列的日期部分与NamedQuery进行比较

时间:2015-01-14 09:06:58

标签: datetime jpa jpa-2.0 jpql java-ee-7

我有一个包含日期和时间条目的表。我尝试创建一个只比较日期部分的NamedQuery。

@NamedQuery(name = "Vote.findForDate", query = "SELECT v FROM Vote v WHERE v.createdAt = :date")
...
createNamedQuery("Vote.findForDate").setParameter("date", date, TemporalType.DATE).getResultList();

但它似乎总是试图比较整个日期时间。

没有在SQL中使用date()函数的方法吗? 我试图独立于数据库。例如,h2没有date()函数。

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是使用日期作为列类型并减少信息。

  @Column(name = "voteDate")
  @Temporal(value = TemporalType.DATE)
  private Date voteDate;