spa*_*pan 9 hibernate jpa jpql
我想使用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的本机查询,如下所示:
SELECT CURRENT_TIMESTAMP < (CURRENT_TIMESTAMP + INTERVAL '30 second')
如果甚至支持,我无法找到有关如何添加/减去时间的文档.如何构建解锁查询?
将列的默认值设置为(特定于您的数据库的)当前时间值。使用 MySql,该列将如下所示:
column_name DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
编辑
下面是一个示例(MySql),每次更新行时都会更新日期时间列:
last_update DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |