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

标签 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() 函数。

最佳答案

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

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

关于datetime - 将日期时间列的日期部分与 NamedQuery 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939156/

相关文章:

c# - 如何将 dd/mm/yyyy 转换为 dd/mm/yyyy

php - 不断从 Carbon Laravel 获取未知或错误的时区

java - 如何创建正确的 DateTimeFormatter 模式

java - 验证不适用于 persist

c# - 使用整数调用 DateTime.AddDays 是否始终保持时间不变?

java - 相当于 JPA Detach api 的 hsql/jdbc 是什么?它到底有什么作用?

database - JPA和2个简单的表

jpa-2.0 - 急切地获取后执行@PostLoad?

hibernate - 带有 Glassfish 2.1 的 JPA 2.0

java - 为 Hibernate 创建通用 DAO 类