带LocalDateTime的弹簧引导项目
你可以在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