java - 尝试保留已使用毫秒参数初始化的日期时出现 MysqlDataTruncation 异常

标签 java mysql spring hibernate

我正在尝试创建一个距离当前时间几年的日期。我这样做是这样的:

new Date(Math.abs(System.currentTimeMillis() - 94670778000L));

但是由于某种原因,日期的年份部分变成了一些随机的未知数字,导致 jvm 抛出 MysqlDataTruncation 异常。这是完整的消息:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '55106056-02-25 05:40:34.461' for column 'lastSeenOnline' at row 1

根据 serhii 的帖子:Data truncation: Incorrect datetime value: ''我应该将 @Temporal 注释从 TemporalType.TIMESTAMP 更改为 TemporalType.TIME 。这确实有帮助,但只是因为日期部分被省略,所以这不是我正在寻找的解决方案。

谁能告诉我我做错了什么?我只是通过毫秒构造函数初始化一个新日期,它应该可以工作,但由于某种原因却不能。

最佳答案

仍然不确定是什么原因导致的,但是从可嵌入类中删除导致问题的字段并将其放置在使用可嵌入类的类中解决了问题。因此,对于面临同样问题的任何人,不要在可嵌入类中使用 @Temporal。

关于java - 尝试保留已使用毫秒参数初始化的日期时出现 MysqlDataTruncation 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54711622/

相关文章:

java - 发送 POST 请求时出现 org.springframework.http.converter.HttpMessageNotReadableException

java - 如何管理用户身份验证/ session ?

java - 底层数据处理程序接收数据时如何在 Activity 上触发 UI 更新

PHP - 一个 PHP 函数中的 2 个 MySQL 查询

php - MySQL 按日期和月内整数排序

php - 如何在 PHP 7 中启用 MySQLi 扩展?

java - tomcat 8中如何正确配置jndi数据源

java - 使用 Eclipse RCP 开发 Workbench 应用程序::它能变得多丰富?

java - java webapp和oracle中的日语字符

java - 如何在路由器表达式中使用 util 常量?