GKi*_*lin 71
对于Hibernate 5.X只需添加
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>${hibernate.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
和
@NotNull
@Column(name = "date_time", nullable = false)
protected LocalDateTime dateTime;
Run Code Online (Sandbox Code Playgroud)
将无需任何额外的努力.请参阅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>
Run Code Online (Sandbox Code Playgroud)
请参阅https://github.com/hibernate/hibernate-orm/wiki/Migration-Guide---5.2并将 Hibernate 5.2与Spring framework 4.x集成
Nei*_*ton 19
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
The*_*ect 11
JPA 2.2现在支持LocalDate
,LocalTime
,LocalDateTime
,OffsetTime
和OffsetDateTime
.
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
对于JPA 2.2实现,可以使用Hibernate 5.2或EclipseLink 2.7.
Hibernate 5支持比JPA 2.2更多的java类型Duration
,Instant
和ZonedDateTime
.
更多信息:
我在我的项目中使用Java 8,EclipseLink(JPA 2.1),PostgreSQL 9.3和PostgreSQL驱动程序-Postgresql-9.2-1002.jdbc4.jar,我可以使用新API中的LocalDateTime变量,但没有问题,但列的数据类型是数据库中的bytea,所以你只能知道我从Java应用程序中读取它.您可以使用AttributeConverter将新类转换为java.sql.Date我从Java.net中找到此代码
@Converter(autoApply = true)
public class LocalDatePersistenceConverter implements
AttributeConverter {
@Override
public java.sql.Date convertToDatabaseColumn(LocalDate entityValue) {
return java.sql.Date.valueOf(entityValue);
}
@Override
public LocalDate convertToEntityAttribute(java.sql.Date databaseValue) {
return databaseValue.toLocalDate();
}
Run Code Online (Sandbox Code Playgroud)
org.jadira.usertype可用于保存JSR 310 Date和Time API.
看看这个示例项目.
从示例项目中,
@MappedSuperclass
public class AbstractEntity {
@Id @GeneratedValue Long id;
@CreatedDate//
@Type(type = "org.jadira.usertype.dateandtime.threeten.PersistentZonedDateTime")//
ZonedDateTime createdDate;
@LastModifiedDate//
@Type(type = "org.jadira.usertype.dateandtime.threeten.PersistentZonedDateTime")//
ZonedDateTime modifiedDate;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46852 次 |
最近记录: |