使用Hibernate在MySQL上将TIMESTAMP复制到DATETIME
我有这两个类
class Source {
// mapped to TIMESTAMP
@Version
@Column(columnDefinition="TIMESTAMP(3) DEFAULT '2016-01-01'")
Instant myInstant;
}
class Destination {
// mapped to DATETIME
@Basic(optional=true)
Instant myInstant;
}
使用休眠时,我分配
destination.myInstant = source.myInstant;
然后存储的值比原始值小一个小时 - 根据命令行MySQL客户端和Java。我目前的时区是UTC + 1,所以原因显然是时区转换。
有几个地方可以解决这个问题,但我正在寻找最佳实践。服务器应该在全球范围内工作,所以它应该继续在内部使用UTC,对吧?
我应该将列类型更改为 ?那么,为什么默认情况下映射到 ?TIMESTAMP
Instant
DATETIME
根据这篇文章,映射到 ,但在我的情况下它没有。为什么?Instant
TIMESTAMP