我正在为我的新项目使用Java 8。
请分享您对Java对Java 8中新的日期和时间API的支持的经验/意见。
通过JPA2.1,我可以在Java8中安全地使用新的日期和时间吗?
更新:
我使用Hibernate (4.3.5.Final)作为JPA实现。
发布于 2014-05-18 12:08:45
JPA 2.1是在Java 1.8之前发布的规范,因此没有强制要求对其提供任何支持。显然,一些实现可能支持一些Java 1.8特性。有些人对Java1.8字节码(例如EclipseLink)有问题。我知道DataNucleus支持java.time和Java1.8,因为这是我使用的。您必须检查您的实现,了解它的支持级别。
已经要求JPA2.2支持java.time类型,请参阅本期https://java.net/jira/browse/JPA_SPEC-63
发布于 2015-10-08 04:26:39
对于Hibernate 5.X,只需添加
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>${hibernate.version}</version>
</dependency>
和
@NotNull
@Column(name = "date_time", nullable = false)
protected LocalDateTime dateTime;
不需要任何额外的努力就可以工作。请参阅https://hibernate.atlassian.net/browse/HHH-8844
更新:
请看Jeff Morin的评论:从Hibernate 5.2.x开始就足够了
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.1.Final</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-...</artifactId>
<version>4.3.1.RELEASE</version>
</dependency>
请参阅https://github.com/hibernate/hibernate-orm/wiki/Migration-Guide---5.2和Integrate Hibernate 5.2 with Spring framework 4.x
发布于 2017-09-04 22:31:18
JPA2.2支持java.time
JPA2.2现在支持LocalDate
、LocalTime
、LocalDateTime
、OffsetTime
和OffsetDateTime
。
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
对于JPA2.2实现,可以使用Hibernate 5.2或EclipseLink 2.7。
Hibernate 5支持比JPA2.2更多的java类型,如Duration
、Instant
和ZonedDateTime
。
更多信息:
https://stackoverflow.com/questions/23718383
复制相似问题