gpt4 book ai didi

java - Spring JPA 查询注释中的日期时间算术

转载 作者:行者123 更新时间:2023-11-30 05:43:56 25 4
gpt4 key购买 nike

我有一个表,其中包含 created 列,该列的类型为 DATETIME,并在创建时设置为 CURRENT_TIMESTAMP

我还有一个 Spring JPA 存储库来处理所述表,并且想创建一个带注释的查询来查找存在时间超过 timeout 时间的行,格式如下:

@Query("SELECT e FROM Entity e WHERE (e.created < CURRENT_TIMESTAMP - timeout")
List<Entity> findOldEntries(@Param("timeout") int timeout);

此查询的正确语法是什么,以及它期望的“超时”单位是什么?

最佳答案

据我所知 JPA 不支持时间段。或者,您可以使用 SpEL :

@Query("SELECT e FROM Entity e WHERE (e.created < ?#{@yourRepo.secondsBefore(#timeout))}")
List<Entity> findOldEntries(@Param("timeout") int timeout);

// add a method that returns an Instant that matches your time
default Instant secondsBefore(int seconds) {
return Instant.now().minus(seconds, ChronoUnit.SECONDS);
}

关于java - Spring JPA 查询注释中的日期时间算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55163771/

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