gpt4 book ai didi

java - 带有时间戳和日期字段的 JPA 选择查询无法检索结果

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:39 24 4
gpt4 key购买 nike

我正在尝试使用 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 中的数据是:

COL1_NUM    COL2_TIMESTAMP                      COL3_DATE123         29-OCT-14 12.00.00.000000000 AM     26-Nov-14456         29-OCT-14 12.00.00.000000000 AM     26-Nov-14

我最初尝试使用 EntityManager.find(Class, Object) 检索结果,但它也失败了,所以我尝试使用 createNativeQuery(),但也没有成功。我的 FinTable 实体将这些列作为时间戳和日期。

请指教正确的方法。 :)谢谢!!

最佳答案

日期和日历参数值需要特殊的方法来指定它们代表什么,例如纯日期、纯时间或日期和时间的组合,如日期和时间(时间)类型部分中详细解释.

例如,以下调用将 Date 对象作为纯日期(无时间)传递:

query.setParameter("date", new java.util.Date(), TemporalType.DATE);

和时间戳

query.setParameter("date", new java.util.Date(), TemporalType.TIMESTAMP);

关于java - 带有时间戳和日期字段的 JPA 选择查询无法检索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27823370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com