Ok, also ich habe es zu gehen. Es erforderte mehrere Änderungen, um beide Hibernate & Springboot & Thymeleaf alle mit Java 8 - LocalDateTime arbeiten.
Hibernate
hinzufügen Abhängigkeiten:
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")
compile group: 'org.hibernate', name: 'hibernate-java8'
Fügen Sie die folgenden application.properties:
spring.jackson.serialization.write_dates_as_timestamps=false
Die Anmerkungen auf meine Entitäten wie folgt aussehen:
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
private LocalDateTime somedate;
Obwohl das nicht unbedingt erforderlich war.
Thymeleaf
Abhängigkeit hinzu:
compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-java8time', version: '3.0.0.RELEASE'
Achten Sie darauf, es entspricht Ihrer Thymeleaf Version.
In jedem HTML-Code im Projekt sollten Ihre Datumsfelder nun #Terminals statt #dates verwenden. dh:
<td th:text="${#temporals.format(object.somedate, 'yyyy-MM-dd HH:mm')}">12/12/2018</td>
Frühling Boot
In meiner Application.java Klasse I hinzugefügt:
@Bean
public Java8TimeDialect java8TimeDialect() {
return new Java8TimeDialect();
}
Die folgenden Ressourcen waren von unschätzbarem Wert:
http://blog.codeleak.pl/2015/11/how-to-java-8-date-time-with-thymeleaf.html#comment-form (Thymeleaf/Springboot)
https://www.thoughts-on-java.org/hibernate-5-date-and-time/ (Hibernate)
Sie können 'verwenden java.time' Typen mit jedem PPV-Anbieter, der diese Art unterstützt, und da diese Arten in JPA 2.2 dann jede kompatible JPA 2.2 Provider – DN1
Frühling-boot ist ein meinungs Rahmen Standard sind. Wenn Sie wissen, wie Sie Springboot auf JPA2.2 bekommen, lassen Sie es mich wissen. –
Versuchen Sie das Entfernen von @Temporal (TemporalType.TIMESTAMP) aus Ihren Entitätsfeldern. – Justas