首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate -使用java.time.Instant和PostgreSQL

Hibernate -使用java.time.Instant和PostgreSQL
EN

Stack Overflow用户
提问于 2017-08-15 08:57:09
回答 1查看 7K关注 0票数 1

我得到SchemaManagementException是因为类型不匹配。Hibernate版本为5.2.8。hibernate.ddl-auto设置为validate

代码语言:javascript
复制
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类型。

代码语言:javascript
复制
@Column(name = "end_date")
private Instant endDate;

对于java.time.Instant,Hibernate类型是InstantType,它映射到TIMESTAMP JDBC类型。因此,我理解为什么错误说它期待一个Types#TIMESTAMP。我不明白的是,错误说它找到了一个Types#DATE

来源:Guide.html

解决方法之一是将列定义设置为

代码语言:javascript
复制
@Column(name = "end_date", columnDefinition="DATE")
private Instant endDate;

但我不太相信这是个解决方案。对我来说,即时是TIMESTAMP,而不是DATE

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-02 19:34:13

解决办法不是解决办法。对于java.time.Instant,PostgreSQL列应该是TIMESTAMP类型。这是DB创建中的一个错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45689625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档