最近我和JPA一起经历了很多关于Timestamps的痛苦.我发现我的很多问题已经通过TIMESTAMPTZ用于我的字段而不是TIMESTAMP来清除.我的服务器是UTC,而我的JVM是PST.使用TIMESTAMP WITHOUT TIMEZONE时,JPA几乎不可能对数据库中的UTC值进行标准化.
对我来说,我将这些字段用于"用户何时创建","他们上次使用设备的时间","他们最后一次收到警报的时间"等等.这些通常是事件,因此它们是实例时间种类的价值观.因为他们现在将通过TIMESTAMPTZ,如果我不想要它们,我总是可以查询它们的特定区域.
所以我的问题是,对于Java/JPA/PostgreSQL服务器,什么时候我想在TIMESTAMPTZ上使用TIMESTAMP?有什么用例呢?现在我很难理解为什么我想要使用TIMESTAMP,因为我担心我没有抓住它的价值.
我有这样的task实体:
import {BaseEntity, Column, Entity, PrimaryGeneratedColumn} from "typeorm";
@Entity()
export class Task extends BaseEntity{
@PrimaryGeneratedColumn()
id:number;
@Column()
title:string
@Column()
description:string
}
Run Code Online (Sandbox Code Playgroud)
我想向这个实体添加 created_at 和 updated_at 字段,并使用Node.js类似的Laravel框架自动填充它。我的数据库是postgres