hibernate - 防止休眠在插入数据库之前将即时时间转换为本地时间
问题描述
我有一个 Spring Boot 项目,我想使用 JPA 和休眠将带有 Instant 变量的 Java 对象保存到我的 MSSQL DB 中。时间是UTC(因为它是即时的),但似乎休眠将时间转换为本地时间,然后再将其插入我的数据库。
我要保存的值:“2018-11-20T08:34:33.965Z”
数据库中保存的值:“2018-11-20T09:34:33.965”,因为数据库中的本地时间是 UTC+1。
我的实体看起来像这样:
@Entity(name = "MyEntity")
public class MyEntity {
private Instant myTime;
}
我的回购:
@Repository
public interface MyEntityRepo extends CrudRepository<MyEntity, String>{}
dependencies in build.gradle
我的依赖:
compile("org.springframework.boot:spring-boot-starter-data-jpa:1.1.12.RELEASE")
compile('org.hibernate:hibernate-java8:5.0.12.Final')
我怎样才能让休眠以节省转换它的时间?
如果您需要任何进一步的信息,请告诉我!
解决方案
您可以使用以下属性告诉休眠使用 UTC 作为默认时区:
<property name="hibernate.jdbc.time_zone" value="UTC"/>
推荐阅读
- python - 使用python的特征检测波前对象。有图书馆吗?
- oracle - REP-51002:绑定到报告服务器 rep_server 失败
- apache-camel - 骆驼分裂与jsonPath没有结果
- mysql - 查询 MySQL InnoDB 以查找 Record 是否在其缓冲池中
- php - Laravel 中锁定功能的死锁
- python - 如何动态切片张量变量
- python - Django ListView 设置变量到模型实例元素
- couchdb - CouchDB 查询列表没有给出任何结果
- python - 我可以在 pandas 数据框中找到替换功能的替代 `.loc` 替代方法吗
- push-notification - 应用中心推送与通知中心