java - 如何让 created_at 列自动生成创建日期时间,就像自动创建 ID 一样?

标签 java spring hibernate spring-mvc spring-boot

我目前有一个实体如下:

@Entity
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long productId;
    private String productImage;
    private String productTitle;
    private String productDescription;
    private Integer productPrice;
    private Date createdAt;
    private Date updatedAt;

创建此对象后,createdAt 和 updatedAt 的值在数据库中显示为 null,想知道如何实现代码以便自动插入 createdAt 和 updateAt?

我的发帖方法如下:

@PostMapping("/products")
public ProductResponse createProduct(@Validated @RequestBody ProductForm productForm) {
    Product product = productForm.asProduct();
    Product createdProduct = productRepository.save(product);
    return new ProductResponse(createdProduct, "Product created");
}

最佳答案

JPA

没有什么比直接注释 Timestamp 字段更方便的了,但是您可以使用 @PrePersist@PreUpdate 注释,并且不费吹灰之力就能获得相同的结果。

hibernate

Spring 数据 JPA

关于java - 如何让 created_at 列自动生成创建日期时间,就像自动创建 ID 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49954812/

相关文章:

java - 在Java中使用工厂设计模式

java - 为什么createMessage方法在JMS中的Session接口(interface)上?

java - Spring中如何更新数据源bean?

java - 在Spring中将包含json属性的实体保存到ElasticSearch

java - 为什么打印 [[Ljava.lang.Object;@12f29d9, [Ljava.lang.Object;@1648f32]

java - Swing - 不规则按钮阵列布局

Javassist 编译导致损坏的类文件

spring - Grails 服务事务行为

java - org.apache.openejb.server.cxf.rs.PojoInvoker 抛出 invokingTargetException

java - Hibernate会以什么方式处理主键数据