Java 为一定数量的最近日期选择带有时间戳的记录,并提供偏移支持
假设我们有一个具有datetime列的实体。 Spring、jpa、hibernate等优秀老甲骨文10 我们的目标是获得一定数量的最近日期的记录,并提供天数补偿支持 例如:Java 为一定数量的最近日期选择带有时间戳的记录,并提供偏移支持,java,spring,oracle,hibernate,jpa,Java,Spring,Oracle,Hibernate,Jpa,假设我们有一个具有datetime列的实体。 Spring、jpa、hibernate等优秀老甲骨文10 我们的目标是获得一定数量的最近日期的记录,并提供天数补偿支持 例如: ID | TIMESTAMP 1 | 2019-01-30 11:20:00 2 | 2019-01-30 5:12:22 3 | 2019-01-29 23:20:01 4 | 2019-01-27 12:12:12 5 | 2019-01-27 1:02:00 someMethod1,0将返回记录:1-
ID | TIMESTAMP
1 | 2019-01-30 11:20:00
2 | 2019-01-30 5:12:22
3 | 2019-01-29 23:20:01
4 | 2019-01-27 12:12:12
5 | 2019-01-27 1:02:00
someMethod1,0将返回记录:1-2
someMethod3,0将返回记录:1-5
someMethod2,1将返回记录:3-5
someMethod3,1将返回记录:3-5
我试过使用smth,比如:
String RECENT_DATES_QUERY = "select dates.DATE_RECEIVED from " +
"(select distinct trunc(e.DATE_RECEIVED) DATE_RECEIVED from ENTITY e order by 1 desc) dates " +
"where rownum between 1 + :offset and :offset + :limit order by 1 desc";
@Query(value = RECENT_DATES_QUERY, nativeQuery = true)
List<LocalDate> findRecentDatesWithOffset(@Param("limit") int limit, @Param("offset") int offset);
要获取日期,请稍后选择*trunctimestamp所在位置。。。但有一个大问题。数据源使用不同的默认模式alter会话。我无法在查询中硬编码架构
有什么想法吗?可能是我,但我在你的“通缉情况”中找不到模式:someMethod1,0将返回记录:1-2 someMethod3,0将返回记录:1-5 someMethod2,1将返回记录:3-5 someMethod3,1将返回记录:3-5日期限制1偏移量0应返回最近日期的记录,因此id为1和2日期限制3偏移量为0的记录将返回三个最近日期的记录,因此在我们的情况下,如果限制为两个日期且偏移量为1,则我们返回两个最近日期的记录,跳过一个,因为我们跳过第30次的偏移-我们返回第29次和第27次的记录
String RECENT_DATES_QUERY = "select dates.DATE_RECEIVED from " +
"(select distinct trunc(e.DATE_RECEIVED) DATE_RECEIVED from ENTITY e order by 1 desc) dates " +
"where rownum between 1 + :offset and :offset + :limit order by 1 desc";
@Query(value = RECENT_DATES_QUERY, nativeQuery = true)
List<LocalDate> findRecentDatesWithOffset(@Param("limit") int limit, @Param("offset") int offset);