Datums- und Zeitverwaltung unter Verwendung der UTC-Zeitzone mit JPA und Ruhezustand
Problem:
Wie können wir JPA und Hibernate so konfigurieren, dass Datums-/Uhrzeitwerte in der UTC-Zeitzone gespeichert und abgerufen werden?
JPA-Entitätsstruktur:
Betrachten Sie die folgende annotierte JPA-Entität:
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
Szenario:
Angenommen, wir haben einen Datumswert wie 03. Februar 2008, 9:30 Uhr Pacific Standard Time (PST). Unser Ziel ist es, es in der Datenbank als entsprechende UTC-Zeit, 3. Februar 2008, 17:30 Uhr, zu speichern. Ebenso sollte dieses Datum beim Abrufen aus der Datenbank als UTC interpretiert werden, was bedeutet, dass 17:30 Uhr UTC bei der Anzeige in 9:30 Uhr PST übersetzt wird.
Lösung:
Ab Hibernate 5.2 können Sie die UTC-Zeitzone explizit festlegen, indem Sie die folgende Eigenschaft nutzen:
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
Fügen Sie diese Eigenschaft zur JPA-Konfigurationsdatei Properties.xml hinzu.
Für Spring Boot-Benutzer , fügen Sie die Eigenschaft zur Datei application.properties hinzu:
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
Durch die Implementierung dieser Konfiguration stellen JPA und Hibernate sicher, dass alle Datums-/Uhrzeitwerte in der UTC-Zeitzone gespeichert und abgerufen werden, was eine konsistente Interpretation gewährleistet Genauigkeit über verschiedene Zeitzonen hinweg.
Das obige ist der detaillierte Inhalt vonWie speichere und rufe ich Datums-/Uhrzeitwerte in UTC mit JPA und Hibernate ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!