Speichern von Datum/Uhrzeit und Zeitstempeln in der UTC-Zeitzone mit JPA und Ruhezustand
Bei der Arbeit mit zeitlichen Daten in Datenbanksystemen ist es wichtig, Folgendes zu tun Berücksichtigen Sie die Zeitzone, in der die Daten gespeichert und interpretiert werden. Für Anwendungen, die eine konsistente Datums- und Uhrzeitverarbeitung über mehrere Zeitzonen hinweg erfordern, bietet die Verwendung der koordinierten Weltzeit (UTC) eine Standardreferenz.
Um JPA und Hibernate so zu konfigurieren, dass Datums-/Uhrzeitwerte als UTC gespeichert und abgerufen werden Unabhängig von der lokalen Zeitzone können die folgenden Schritte ausgeführt werden:
JPA-Entitätskonfiguration:
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) @TimeZone(value = TimeZone.UTC) public java.util.Date date; }</code>
Durch Hinzufügen von @TimeZone(value = TimeZone.UTC ) zum annotierten Datumsfeld geben Sie explizit an, dass das Datum in UTC-Zeit interpretiert und gespeichert werden soll.
Hibernate-Konfiguration für UTC-Zeitzone:
Hibernate 5.2 und höher:
In Hibernate 5.2 und späteren Versionen können Sie die von Hibernate verwendete Standardsystemzeitzone überschreiben, indem Sie die Eigenschaft hibernate.jdbc.time_zone in Ihrer JPA-Konfigurationsdatei (properties.xml) konfigurieren ):
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
Spring Boot-Anwendungen:
Wenn Sie Spring Boot verwenden, können Sie die obige Eigenschaft in Ihrer application.properties-Datei festlegen:
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
Beispiel:
Betrachten Sie die im Beispiel definierte JPA-Entität. Wenn das Datumsfeld auf 03. Februar 2008, 9:30 Uhr PST (Pacific Standard Time) eingestellt ist, speichert Hibernate den Wert als 03. Februar 2008, 17:30 Uhr UTC in der Datenbank. Dadurch wird sichergestellt, dass die Zeit unabhängig von den Server- oder lokalen Zeitzoneneinstellungen konsistent in der UTC-Zeitzone gespeichert und abgerufen wird.
Das obige ist der detaillierte Inhalt vonWie speichere ich Datum/Uhrzeit und Zeitstempel in der UTC-Zeitzone mit JPA und Hibernate?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!