相关疑难解决方法(0)

在HQL中执行日期/时间数学?

我正在寻找如何在HQL查询中执行日期/时间数学.具体来说,如何从current_timestamp()函数结果中添加或减去(x)时间量?或者我是否必须为此放入SQL并希望运行的数据库支持它?

HQL查询示例:

FROM RandomThing
WHERE randomTime IS NOT NULL AND
      randomTime >= current_timestamp() AND
      randomTime <= (current_timestamp() + :timeToAdd)
Run Code Online (Sandbox Code Playgroud)

我可以将:timeToSubtract参数定义为任何特定单位,但是大于小时的任何内容都是不合需要的,并且秒是最理想的.

澄清:我意识到这可以在查询之外轻松完成.但是出于哲学原因,让我们说使用数据库服务器的时间非常重要,而不是查询系统的时间.实际示例:我正在查询最后(x)时间内所有条目的自动时间戳.由于时间戳是由数据库系统生成的,因此使用数据库的当前时间也很重要.

datetime hibernate hql

16
推荐指数
2
解决办法
4万
查看次数

通过 Spring JPA Repository 获取最近 3 天的记录

我有一个包含 field 的实体date

@Entity
@Table(name="messages", schema = "users")
...
public class Message {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(name = "author")
    private String author;

    @Column(name = "tags")
    private String tags;

    @Column(name = "message_date")
    private LocalDate date;

    @Override
    public String toString() {
       ...    
    }
}
Run Code Online (Sandbox Code Playgroud)
@Repository
public interface MessageRepository extends JpaRepository<Message, Long> {

    Message findByMessageId(Long id);

}
Run Code Online (Sandbox Code Playgroud)

我正在将 Spring Data JPA 与存储库一起使用。我想从数据库获取过去 3 天的所有消息(字段date)。我怎样才能用 Spring JPA 做到这一点?

@Query(...?)
List<Message> findBy...?
Run Code Online (Sandbox Code Playgroud)

spring spring-data-jpa

0
推荐指数
1
解决办法
5440
查看次数

标签 统计

datetime ×1

hibernate ×1

hql ×1

spring ×1

spring-data-jpa ×1