Ich möchte Hibernate current_timestamp()
verwenden, um einen Zeitstempel basierend auf der Datenbankzeit zu einer Spalte zu schreiben. Ich möchte die Datenbankzeit verwenden, nicht die Systemzeit des Systems meines Dienstes, der die Datenbank verwendet. Ich verwende die Datenbankzeit für zwei Abfragen, Sperren und Entsperren .
Abfrage sperren
UPDATE MyEntity e SET e.lock = current_timestamp() WHERE e.id = :id
Abfrage entsperren
UPDATE MyEntity e SET e.lock = (current_timestamp() - "30 seconds") WHERE e.id = :id
Mein letzter Ausweg ist, eine native Abfrage für PostgreSQL wie folgt zu verwenden:
SELECT CURRENT_TIMESTAMP < (CURRENT_TIMESTAMP + INTERVAL '30 second')
Ich kann die Dokumentation zum Hinzufügen / Entfernen von Zeit nicht finden, wenn diese sogar unterstützt wird. Wie kann ich die Entsperren Abfrage erstellen?
Setzen Sie den Standardwert der Spalte auf den (Ihrer datenbankspezifischen) aktuellen Zeitwert. Mit MySql, Die Spalte würde so aussehen:
%Vor%Bearbeiten
Hier ist ein Beispiel (MySql), das die Datetime-Spalte jedes Mal aktualisiert, wenn die Zeile aktualisiert wird:
%Vor%