我得到SchemaManagementException是因为类型不匹配。Hibernate版本为5.2.8。hibernate.ddl-auto设置为validate
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [end_date] in table [certificate]; found [date (Types#DATE)], but expecting [timestamp (Types#TIMESTAMP)]列实体为java.time.Instant类型,PostgreSQL列为TIMESTAMPTZ类型。
@Column(name = "end_date")
private Instant endDate;对于java.time.Instant,Hibernate类型是InstantType,它映射到TIMESTAMP JDBC类型。因此,我理解为什么错误说它期待一个Types#TIMESTAMP。我不明白的是,错误说它找到了一个Types#DATE。
来源:Guide.html
解决方法之一是将列定义设置为
@Column(name = "end_date", columnDefinition="DATE")
private Instant endDate;但我不太相信这是个解决方案。对我来说,即时是TIMESTAMP,而不是DATE。
发布于 2017-09-02 19:34:13
解决办法不是解决办法。对于java.time.Instant,PostgreSQL列应该是TIMESTAMP类型。这是DB创建中的一个错误。
https://stackoverflow.com/questions/45689625
复制相似问题