gpt4 book ai didi

java - 如何使用 Spring、Hibernate 将具有自动值的数据插入到 createdDate 和 updatedDate?

转载 作者:可可西里 更新时间:2023-11-01 07:48:40 25 4
gpt4 key购买 nike

我想通过自动插入 created_at 日期时间和相应的 updated_at 日期时间来插入数据。

我有一个 pojo 作为:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;

@Basic(optional = false)
@Column(name = "name")
private String name;

@Basic(optional = false)
@CreationTimestamp
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;

@UpdateTimestamp
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;

在我的数据库中,我使用 DATETIME 作为 created_at 和 updated_at 的类型。但我无法插入数据,而是给出了一条错误消息 not-null property references a null or transient value: com.project.test.entity.Stamp.createdAt.

我想知道为 created_at 和 updated_at DateTime 字段定义数据库架构以使其自动生成的正确方法。

最佳答案

您可以执行如下操作。

1) 使用 new Date() 初始化您创建和更新的日期:

@Basic(optional = false)
@CreationTimestamp
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt = new Date(); // initialize created date

@UpdateTimestamp
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt = new Date(); // initialize updated date

2) 并通过 new Date() 提供更新日期的 setter 方法,但不向其传递任何值:

@PreUpdate
public void setUpdatedAt() {
this.updatedAt= new Date();
}

关于java - 如何使用 Spring、Hibernate 将具有自动值的数据插入到 createdDate 和 updatedDate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com