Mysql 使用Spring数据读取数据jpa自动将时间戳转换为当前时区

Mysql 使用Spring数据读取数据jpa自动将时间戳转换为当前时区,mysql,spring-boot,spring-data-jpa,Mysql,Spring Boot,Spring Data Jpa,我有一个带有列的表用户 user_id, first_name,last_name, created_time(timestamp) 我有一个类用户实体 @Getter @Setter @Table(name="user") @Entity public class User { @Id private Long userId; @Column(name="first_name") private String firstName

我有一个带有列的表用户

user_id, first_name,last_name, created_time(timestamp)
我有一个类用户实体

@Getter
@Setter
@Table(name="user")
@Entity
public class User {
   @Id
   private Long userId;
   @Column(name="first_name")
   private String firstName;
   @Column(name="last_name")
   private String lastName;
   @Column(name="created_time")
   private Timestamp createdTime;
}
我有一个用户存储库界面

public interface UserRepository extends CRUDRepository<User,Long> {
   User findByUserId(Long id);
}
public interface UserRepository扩展了crudepository{
用户findByUserId(长id);
}
存储在数据库表中的创建时间是2020-09-08 15:38:13,当我使用spring数据jpa读取对象时,它返回为“2020-09-08 21:08:13”

我应该如何确保这种自动时区转换不会发生?

有一种方法可以解释这个问题并提出解决方案


您还可以查看答案。

问题的根本原因是Jackson自动将时间戳值转换为UTC,然后将其序列化

为了纠正此行为,可以将以下属性添加到application.properties中,并指定与DB服务器使用的时区值相同的时区值

spring.jackson.time-zone=Asia/Kolkata

我在一个虚拟项目中也尝试了同样的方法,它对我很有效。你能分享不同组件的版本吗?Mysql 5.7.3,Spring boot 2.3.0.RELEASE,Mysql驱动程序8.0.20