hibernate - 在休眠实体中用时间 api 替换 joda 时间
问题描述
我目前正在一个项目中从 jodatime 升级到 javatime api。该项目使用休眠版本 4.3.1 和 jadira.usertype 映射 org.joda.time.DateTime 和 java.sql.Timestamp ( http://jadira.sourceforge.net/usertype.core-hibernate36/apidocs/org/ jadira/usertype/dateandtime/joda/PersistentDateTime.html)。
来自其中一个实体的摘录:
@Column(name = "created_at")
private DateTime createdAt;
当服务器系统时间为“Fri Feb 7 10:09:02 CET 2020”时,这将存储到列中:“2020-02-07 09:09:02.431000”
在 joda 时间转换指南(https://blog.joda.org/2014/11/converting-from-joda-time-to-javatime.html)中指出 org.joda.DateTime 与 java 的概念相同.time.ZonedDateTime。我正在考虑用 ZonedDateTime 替换 DateTime,但有两件事引起关注和问题:hibernate 版本不支持新的 java.time 类型,并且“created_at”的列数据类型是“没有时区的时间戳” . 升级休眠还不是一种选择。
我正在考虑使用 java.sql.Timestamp 而不是 org.joda.DateTime 作为实体列
@Column(name = "created_at")
private Timestamp createdAt;
但是不确定在从/到 Timestamp 转换时使用哪种 java.time 类型而不是 org.joda.DateTime - 任何有关如何进行此操作的建议都值得赞赏!
解决方案
推荐阅读
- node.js - 如何在 Alexa Skill Fact 中保存自由形式的用户输入
- mysql - 如何在 RDBMS 中有效地存储工作人员层次结构的历史
- node.js - Firebase 服务失败,但部署工作正常
- javascript - NBA 数据有时仅在谷歌计算虚拟机上加载
- php - Laravel 迁移每次使用不同的 .env
- java - Intellij 插件来计算测试中的操作或 CPU 周期
- java - 在java中的对象数组中添加数据
- excel - 从工作表中搜索数据并将其返回到辅助工作表上的用户表单
- windows - OpenMp 不使用所有 CPU(双插槽、Windows 和 Microsoft Visual Studio)
- python - 根据相对值对 pandas 中的细胞进行着色