【发布时间】:2017-12-25 14:08:48
【问题描述】:
场景是从 OracleDB 中获取值,其中一个搜索输入是 DateTime,格式为 "07/11/2017 10:12:16 AM"(这是一个字符串),并且DB 列是 TIMESTAMP。
列中的数据以“07/11/2017 10:12:16 AM”的格式保存,但它是一个TIMESTAMP。
在从 Oracle DB 查询时,可以使用 TO_TIMESTAMP 函数将搜索输入转换为适当的 TIMESTAMP
示例
select * from Table where SI_ID='12345'and COLUMN >= TO_TIMESTAMP ('07/11/2017 10:12:16 AM', 'mm/DD/YYYY HH:MI:SS AM';
我需要使用 Spring Data JPA 和 NamedQuery 在 Java 中实现相同的功能。 从 JPA 存储库调用 NativeNamedQuery 如下
@Query(name = "Sample.findRecordByIdAndTime", nativeQuery = true)
Sample findByIdAndTime (@Param("id") Long id, @Param("timestamp") String timestamp);
但是如何在从 JPA 存储库调用的命名查询中将字符串转换为 TIMESTAMP,如下所示:
@NamedNativeQuery(name="Sample.findRecordByIdAndTime", query="select * from TABLE where SI_ID= ? and TS_COLUMN >= TO_TIMESTAMP(?, 'mm/DD/YYYY HH:MI:SS AM')", resultClass = Sample.class)
任何帮助将不胜感激。
【问题讨论】:
标签: oracle hibernate spring-data