防止Hibernate在插入数据库之前将Instant转换为本地时间

时间:2018-11-20 12:02:07

标签: hibernate spring-boot java-8

我有一个Spring Boot项目,我想将带有Instant变量的Java对象保存到具有JPA和休眠状态的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') 

我如何进入休眠状态以节省转换时间?

如果您需要任何其他信息,请告诉我!

1 个答案:

答案 0 :(得分:0)

您可以使用以下属性告诉休眠状态将UTC用作默认时区:

<property name="hibernate.jdbc.time_zone" value="UTC"/>