【发布时间】:2015-03-05 13:53:15
【问题描述】:
我正在尝试使用 JPA 查询获取记录,该查询在 WHERE 子句中有 DATE 和 TIMESTAMP 列。但不知何故,日期和时间戳列无法从数据库中检索任何内容。
代码段:
String sql = "Select F.* from FIN_TABLE F where F.COL1_NUM = :COL1 and F.COL2_TIMESTAMP =:COL2 and F.COL3_DATE =:COL3";
Query query = JPAentityManager.createNativeQuery(sql);
query.setParameter("COL1", 123);
//java.sql.Timestamp:2014-10-29 12:00:00.0
query.setParameter("COL2", new java.sql.Timestamp(new java.sql.Date(new SimpleDateFormat("MMM dd yyyy HH:mm:sssa").parse("OCT 29 2014 12:00:000AM").getTime()).getTime()));
//java.sql.Date:2014-10-29
query.setParameter("COL3", new java.sql.Date(new SimpleDateFormat("MMM dd yyyy HH:mm:sssa").parse("OCT 29 2014 12:00:000AM").getTime()));
List<FinTable> result = (List<FinTable>)query.getResultList();
Oracle 中的数据是:
我最初尝试使用 EntityManager.find(Class, Object) 检索结果,但它也失败了,所以我尝试使用 createNativeQuery(),它也未能成功。 我的 FinTable 实体将这些列作为时间戳和日期。
请指教正确的方法。 :) 谢谢!!
【问题讨论】:
标签: java oracle hibernate jpa timestamp