java - 在 Spring Boot Hibernate for Postgres 中为特定时区设置 UpdatedTimeStamp

标签 java postgresql hibernate spring-boot

我有一个实体存储这样的上次更新日期

@Entity
@Table(name = "counter")
public class Count {
    @Id
    @Column(name = "uniq_id")
    String uniqId;

    @Column(name = "amount")
    int amount;

    @Column(name = "points")
    double points;

    @Column(name = "handshake")
    boolean handshake;

    @UpdateTimestamp
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "updated_date")
    Date timestamp;

    //getter setters
}

这部分

@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_date")
Date timestamp;

意味着每当使用此实体时,时间戳都会自动更新并保留在数据库中。

现在我的问题是,如何在特定时区自动设置此时间戳?我正在使用 Postgresql。任何帮助,将不胜感激。

最佳答案

避免使用Date ,JPA 支持 java-8 日期类,因此使用 OffsetDateTime映射带有时区的TIMESTAMP

Mapping Java 8 Date Types

@Column(name = "updated_date", columnDefinition = "TIMESTAMP WITH TIME ZONE")
 private OffsetDateTime offsetDateTime;

对于没有时区的时间戳,您可以使用 LocalDateTime

@Column(name = "updated_date", columnDefinition = "TIMESTAMP")
private LocalDateTime localDateTime;

关于java - 在 Spring Boot Hibernate for Postgres 中为特定时区设置 UpdatedTimeStamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811958/

相关文章:

java - android 获取命令的stderr

postgresql - 字符可变数组是否对数组中的每个元素应用精度限制?

sql - 求每个D的总点数,如果P中没有D,那么points应该为0

java - hibernate 查询缓存指定缓存持续时间

java - Hibernate criteria,使用associations按限制返回结果

java - Android - 从 ArrayList 中删除项目

java - 引用具体类作为参数的接口(interface)方法会导致耦合吗?

java - 我的文本阅读器程序不打印任何内容

postgresql - 如何查询PostgreSQL中的重复规则?

oracle - LockModeType Jpa 的区别