首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以可读的方式在Server中存储java.time.Instant

以可读的方式在Server中存储java.time.Instant
EN

Stack Overflow用户
提问于 2021-08-20 19:50:28
回答 1查看 291关注 0票数 0

我正在更新一个处理包裹递送的应用程序。使用的技术:Java8和hibernate 5.1 (有可能升级到最新版本) Server

到目前为止,应用程序仅在一个国家使用,系统中的所有事件(包裹注册、包裹交付等)都在使用。在代码中进行管理,并使用旧的java日期存储在数据库中。实体,计算,一切都使用java.util.Date。我想用java 8时间类编写新模块。

事件将使用新的java.time.Instant类,因为它是一个特定的和时区独立的时刻。

问题:是否有可能用java.time.Instant 定义实体,用人类可读的定义定义数据库模式?

默认情况下,在使用Instant声明实体时:

代码语言:javascript
复制
    @Column(name = "Event")
    protected Instant event;

数据库模式被创建为Event varbinary(255),这是不可能读取的。

我可以在数据库中将其定义为Event datetime,但随后必须将其定义为java.sql.Timestamp,并每次都将其转换为java.time.Instant

是否有我缺少的Server定义?也许是一些实体注释来使转换变得容易?可能会有一些不同的类作为实体字段使用,以使转换变得简单吗?我应该使用与包不同的类吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-06 13:52:22

我认为对于5.1版本,您仍然需要一个特殊的工件,它包含Java8时间类型的类型实现:https://search.maven.org/artifact/org.hibernate/hibernate-java8/5.1.0.Final/jar

依赖Java 8的较新的Hibernate版本已经包含在hibernate-core中。

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

https://stackoverflow.com/questions/68867443

复制
相关文章

相似问题

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