你可以在Spring Boot項目中使用LocalDateTime嗎?如果是這樣的話?帶LocalDateTime的彈簧引導項目
我試圖按照這種post並加入application.properties需要扶養而行,但我仍然得到:
java.io.StreamCorruptedException: invalid stream header: 32303137
當保存數據或試圖使用java.util中創建日期以查看現有數據。日期。
你可以在Spring Boot項目中使用LocalDateTime嗎?如果是這樣的話?帶LocalDateTime的彈簧引導項目
我試圖按照這種post並加入application.properties需要扶養而行,但我仍然得到:
java.io.StreamCorruptedException: invalid stream header: 32303137
當保存數據或試圖使用java.util中創建日期以查看現有數據。日期。
好吧,所以我得到了它。它需要進行多項更改才能使休眠模式都能與Java 8 - LocalDateTime配合使用。
休眠
添加依賴關係:
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")
compile group: 'org.hibernate', name: 'hibernate-java8'
以下內容添加到application.properties:
spring.jackson.serialization.write_dates_as_timestamps=false
我的實體的註釋是這樣的:
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
private LocalDateTime somedate;
雖然這似乎並不嚴格需要。
Thymeleaf
添加依賴:
compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-java8time', version: '3.0.0.RELEASE'
確保品牌Thymeleaf版本相匹配。
在項目中的任何HTML中,日期字段現在應該使用#temporals而不是#dates。即:
<td th:text="${#temporals.format(object.somedate, 'yyyy-MM-dd HH:mm')}">12/12/2018</td>
春季啓動
在我Application.java類我說:
@Bean
public Java8TimeDialect java8TimeDialect() {
return new Java8TimeDialect();
}
下面的資源是非常寶貴的:
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/(休眠)
對於沒有時間的日期值,使用LocalDate而不是LocalDateTime。 –
雖然我不知道你的更廣泛的意圖,但讓我告訴你使用'LocalDateTime'作爲日期時間值。該課堂故意缺乏任何時區或與UTC的偏移概念。所以這個班級不會代表時間軸上的某一刻,而只是一系列潛在的時刻。如果您的意思是在時間線上表示特定時刻,請使用其他java.time類:「即時」,「OffsetDateTime」或「ZonedDateTime」。 –
你的回答提到了hibernate,但列出了傑克遜依賴關係。也許你在你的答案中缺少與冬眠有關的東西? –
你可以用'java.time'類型與支持這些類型,以及因爲這些類型在JPA 2.2標準的,那任何兼容JPA 2.2提供商 – DN1
春季啓動是一個自以爲是的框架,任何JPA提供商。如果您知道如何將Springboot加入JPA2.2,請告訴我。 –
嘗試從實體字段中刪除@Temporal(TemporalType.TIMESTAMP)。 – Justas