我正在尝试创建一个距当前时间几年的日期。我这样做是这样的:
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
。这确实有帮助,但这只是因为日期部分随后被省略了,所以这不是我想要的解决方案。
有人可以告诉我我在做什么错吗?我只是通过毫秒构造函数初始化一个新日期,它应该可以工作,但是由于某些原因却不能。
答案 0 :(得分:0)
仍不确定是什么原因引起的,但是从可嵌入类中删除了引起问题的字段,并将其放在使用可嵌入类的类中解决了该问题。因此,对于面临相同问题的任何人,请勿在可嵌入的类中使用@Temporal。