2017-05-10 5 views
0

Ich habe ein Modell-Objekt, wo ich ein Feld mit einem Datum haben möchte. Für jetzt verwende ich ZonedDateTime, wie es unseren Bedürfnissen entspricht.Java ZonedDateTime in der Datenbank speichern

Hibernate speichert dieses Feld in der Datenbank als tinyblob. Können wir die Art und Weise, wie es in der Datenbank gespeichert wird, in ein besser lesbares Format und vor allem in ein sortierbares Format ändern?

Die verwendete Datenbank ist eine mysql db.

+0

sein, die ich von "sortierbar" übernehmen Sie "sortierbar nach Instant-in-time" zu verstehen? ('ZonedDateTime' passt schlecht, wenn Sie wirklich nur ein Datum haben wollen.' 'LocalDate'' wäre dafür der richtige Typ.) –

+0

@JonSkeet Ich benutze die ZoneDateTime in Feldern, wo ich die genaue Zeit bis zu Millisekunden benötige. LocalDate in Feldern, für die ich nur ein Datum benötige. Es wäre ein Overkill, beide in diesem Thread zu erwähnen – Panos

+0

"Es wäre ein Overkill, beide in diesem Thread zu erwähnen." Ich glaube wirklich nicht, dass es "übertrieben" ist, Sie zu bitten, die Daten, die Sie darzustellen versuchen, genau zu beschreiben. Du hast gesagt, du versuchst ein Date zu repräsentieren, aber du bist es nicht. Sie versuchen vermutlich, einen Zeitpunkt mit einer zugehörigen Zeitzone darzustellen. Wenn Sie versuchen, Hilfe zu erhalten, ist es wichtig, so genau wie möglich zu sein. –

Antwort

2

hat dieses Problem bereits als neues improvement zu Hibernate 5.0.0.Beta1 aufgelöst worden ist, in einer isolierten modulehibernate-java8

gebündelt wurde ursprünglich Nun ist es direkt in hibernate-core gebündelt, so nur sicherstellen, dass Sie die aktuellste Version verwenden von es (5.2.x +), falls Sie maven verwenden, sollte es so

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>5.2.10.Final</version> 
</dependency> 
+0

Danke. Ich werde es versuchen und lassen Sie es wissen :) – Panos

+0

Ich habe die Lösung versucht. Die Hibernate-Core-Lösung hat einen Konflikt mit den Federdaten. Es benötigt jpa 2, während Federdaten mit jpa arbeiten und die Anwendung nicht einmal startet. Ich habe auch die Hibernate-Java8-Version ausprobiert, aber sie hat es nicht behoben. – Panos

+0

@Panos dann müssen Sie Ihre Spring Data-Version auch zu aktualisieren, mindestens auf Version '1.11', die Hibernate 5.2 unterstützt, überprüfen Sie hier http://docs.spring.io/spring-data/jpa/docs/2.0.0 .M3/reference/html/# new-features.1-11-0 – fujy

Verwandte Themen