【发布时间】:2014-05-15 19:31:17
【问题描述】:
我有以下疑问:
StringBuilder sb = new StringBuilder("select e from Event e");
sb.append(" where e.user = :user and e.activated = true and e.startDate <= :date and uc.endDate >= :date");
Query query = this.getEntityManager().createQuery(sb.toString());
query.setParameter("user", user);
query.setParameter("date", date);
其中 date 是标准 java 日期对象,startDate、endDate 是没有时间的 Postgresql 日期(例如,在数据库中它们看起来像 '2014-04-03')
但我发现当提供的日期参数与 startDate 列在同一天时,找不到匹配项。我认为 '
我认为这是因为一个是完整的时间戳而一个只是一个日期?我已经尝试过其他类似问题的建议,包括...
-使用 SimpleDateFormat 将日期转换为 yyyy-MM-dd 模式,然后使用 DATE() 转换为 HQL
-在设置为参数之前使用日历去除时间分量
-使用天(e.startDate)
但没有一个有效。所以我的问题是,为什么这个日期比较不起作用和/或如何正确地将参数转换为日期?
PostgreSQL 9.0 | JPA |休眠 3.6
谢谢!
【问题讨论】:
-
对不起,问题实际上是不同的......我在这里发布了一个新问题stackoverflow.com/questions/22868648/…