gpt4 book ai didi

hibernate - 使用 JPA 或 native 查询计算时间

转载 作者:行者123 更新时间:2023-12-02 19:03:49 25 4
gpt4 key购买 nike

我想使用 Hibernate current_timestamp()将基于数据库时间的时间戳写入列。我想使用数据库时间,而不是使用数据库的我的服务系统的系统时间。我将数据库时间用于两个查询:锁定解锁

锁定查询

UPDATE MyEntity e SET e.lock = current_timestamp() WHERE e.id = :id

解锁查询

UPDATE MyEntity e SET e.lock = (current_timestamp() - "30 seconds") WHERE e.id = :id

我的最后一招是使用 PostgreSQL 的 native 查询,如下所示:

SELECT CURRENT_TIMESTAMP < (CURRENT_TIMESTAMP + INTERVAL '30 second')

我无法找到有关如何添加/减去时间的文档(如果支持的话)。如何构建解锁查询?

最佳答案

将该列的默认值设置为(特定于您的数据库的)当前时间值。有了MySql,该列将如下所示:

column_name DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP

编辑

下面是一个示例 (MySql),每次更新行时都会更新日期时间列:

last_update DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

关于hibernate - 使用 JPA 或 native 查询计算时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47836502/

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