Java JPA/Hibernate CreationTimestamp不使用PrimaryKeyJoinColumn

Java JPA/Hibernate CreationTimestamp不使用PrimaryKeyJoinColumn,java,hibernate,jpa,Java,Hibernate,Jpa,我试图使用@CreationTimestamp自动设置新实体的创建日期,但由于某种原因,它似乎无法正常工作 ERROR: null value in column "created_at" violates not-null constraint 在实体中,我定义了如下注释 @CreationTimestamp @Temporal(TemporalType.TIMESTAMP) @Column(name = "CREATED_AT", nullable = false) private Dat

我试图使用
@CreationTimestamp
自动设置新实体的创建日期,但由于某种原因,它似乎无法正常工作

ERROR: null value in column "created_at" violates not-null constraint
在实体中,我定义了如下注释

@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATED_AT", nullable = false)
private Date createdAt;
液化迁移文件:

<property name="date.type" value="TIMESTAMP WITH TIME ZONE" dbms="postgresql" />

<createTable tableName="USER">
    <column name="ID" type="${uuid_type}"><constraints nullable="false"/></column>
    <column name="CREATED_AT" type="${date.type}"><constraints nullable="false"/></column>
</createTable>

当我手动设置
createdAt
日期时,代码工作。但它不会自动生成注释应该做什么。谁能告诉我为什么不行

我在这里寻找答案时也遇到了同样的问题。这就是我如何注释它以使其工作的方式:

@CreationTimestamp
@Column(name = "created", nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date created;
我认为这里重要的一点是,列被定义为不“可更新”——因此在更新行时,值不会改变。 因为如果它是“可更新的”,那么JPA就不会生成值


但是,我也设置了“insertable=false”,这是错误的,因为后来JPA试图用null值将其持久化,这会抛出一个错误,因为列被设置为非null。

我在这里寻找答案时遇到了同样的问题。这就是我如何注释它以使其工作的方式:

@CreationTimestamp
@Column(name = "created", nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date created;
我认为这里重要的一点是,列被定义为不“可更新”——因此在更新行时,值不会改变。 因为如果它是“可更新的”,那么JPA就不会生成值


但是,我也设置了“insertable=false”,这是错误的,因为JPA试图使用null值来持久化它,这会引发一个错误,因为列被设置为非null。

请提供完整的实体代码,然后您可以尝试@column(name=“CREATED_AT”,nullable=false,updateable=false)creationTimeStamp似乎没有生成表列所需的分区时间戳值。请提供完整的实体编码,然后在@column(name=“CREATED_AT”,nullable=false,updateable=false)上尝试似乎creationTimeStamp没有生成表列所期望的分区时间戳值。