我们正在将我们的Hibernate(5.0.2)代码迁移到Java 8,它还涉及从转换java.util.Date
到java.time.LocalDate
(以解决与Java 7中的日期处理相关的问题).我遇到的一个问题是Hibernate如何处理我们用作"零日期"的特殊值,即0001-01-01
.
该属性声明如下:
@NotNull @Column(name = "START_DATE", nullable = false) private LocalDate startDate;
该值存储在数据库中0001-01-01
,但是当它被Hibernate加载时,它突然转向0000-12-29
.我假设发生这种情况是因为Hibernate默认使用格里高利历,并且因为这个日期是在它引入之前,所以使用了一些转换.
有没有办法配置Hibernate来禁用这种行为(除了实现一个特殊的属性编写器)?