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

Compare date part of datetime column with NamedQuery

我有一个 table 包含带有日期和时间的条目。我尝试创建一个仅比较日期部分的 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() 函数。

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

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