Java 8 在JPA实体中将日期类型更改为Java 8 LocalDate是否正确?

Java 8 在JPA实体中将日期类型更改为Java 8 LocalDate是否正确?,java-8,Java 8,例如,更改此项: @Entity public class Person { @Past @Temporal(TemporalType.DATE) @Column(name = "birth_date", length = ConstantNumeric.TWENTY_FIVE) private Date birthDate; ... } 为此: @Entity public class Person { @Past @Tempora

例如,更改此项:

@Entity
public class Person {   
    @Past
    @Temporal(TemporalType.DATE)
    @Column(name = "birth_date", length = ConstantNumeric.TWENTY_FIVE)
    private Date birthDate;
...
}
为此:

@Entity
public class Person {   
    @Past
    @Temporal(TemporalType.DATE)
    @Column(name = "birth_date", length = ConstantNumeric.TWENTY_FIVE)
    private LocalDate birthDate;
...
}

这是Java8项目的正确方法吗?或者最好在需要时将LocalDate转换为Date?

我知道这个问题很老,但无论如何我都会给出答案

从JPA2.1开始,您可以使用
attributeconverter
s,如前所述。简单地说,您必须实现
javax.persistence.AttributeConverter
才能从
LocalDate
转换为
Date
,反之亦然。
然后您可以直接在JPA实体中使用
LocalDate
类型的属性。

No,这两种类型完全不同
java.util.Date
是一个类似unix的全局时间戳,而
java.time.LocalDate
只是一个普通的日期,没有任何时区引用。而且JPA还不支持新的Java-8-time库。请详细说明您的答案,因为它不是一个只有链接的答案。