Java 为一定数量的最近日期选择带有时间戳的记录,并提供偏移支持

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-

假设我们有一个具有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-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);