JPA支持Java 8新的日期和时间API

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我为我的新项目使用Java 8。

我试图在java 8中使用新的日期和时间API,但是我不知道是否JPA 2.1完全支持这个新的日期和时间API或不。

请在JPA的支持中分享您的经验/意见,以获取Java 8中的新日期和时间API。

我可以在JPA 2.1中安全地使用Java 8中的新日期和时间API吗?

我使用Hibernate(4.3.5.Final)作为JPA实现。

提问于
用户回答回答于

JPA 2.1是一个在Java 1.8之前推出的规范,因此并未强制任何支持。显然有些实现可能支持一些Java 1.8特性。有些Java 1.8字节码存在问题(例如EclipseLink)。我知道DataNucleus支持java.time和Java 1.8,因为这是我使用的。您必须检查您的实施是否具有支持级别。

有人要求JPA 2.2支持java.time类型,请参阅此问题https://java.net/jira/browse/JPA_SPEC-63

用户回答回答于

对于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>

扫码关注云+社区