gpt4 book ai didi

java - @CreateTimestamp,@UpdateTimestamp。为什么返回的对象的字段 "create"为空?

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:10 35 4
gpt4 key购买 nike

我有 2 个字段:创建和更新。

@CreateTimestamp
@Column(nullable = false, updatable = false)
private Timestamp create;

@UpdateTimestamp
@Column(nullable = false)
private Timestamp update;

创建对象后:一切正常。但是在更新对象期间,我得到返回对象的字段“create”为空。在数据库中,对象正在正确保存填充字段。怎么解决?

类的完整代码:

@Entity
@Table(name = "user")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;

@Column(nullable = false, unique = true)
private String name;

@Column(nullable = false)
private String password;

@CreateTimestamp
@Column(nullable = false, updatable = false)
private Timestamp create;

@UpdateTimestamp
@Column(nullable = false)
private Timestamp update;
}

方法更新:

public UserEntity update(UserEntity user, String id) {
UserEntity userFromDB = userDao.findById(id);
UserEntity updatedUser = userDao.save(userFromDB);
return updatedUser;
}

返回updatedUser时,create字段为null。

最佳答案

不清楚您从何处导入 @CreateTimestamp@UpdateTimestamp

但是,由于您似乎正在使用 Spring,因此您可以使用 @CreatedDate@LastModifiedDate来自Spring数据。并确保您的实体使用 @EntityListeners(AuditingEntityListener.class) 进行注释。

除此之外,自 Java 8 以来,随着新的 Date and Time API 的引入, ,您应该避免使用 Date以及相关的类,例如 TimestampTimestamp 的合适替代品,在您的情况下,将是 InstantOffsetDateTime .

关于java - @CreateTimestamp,@UpdateTimestamp。为什么返回的对象的字段 "create"为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409808/

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