在Java Persistence API (JPA) 中,您可以使用@Column
注解的columnDefinition
属性来设置默认值为CURRENT_TIMESTAMP
。以下是如何在实体类中实现这一点的示例:
import javax.persistence.*;
import java.util.Date;
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private Date createdAt;
// 其他字段和方法...
}
在这个例子中,createdAt
字段被配置为在插入新记录时自动设置为当前时间戳。
CURRENT_TIMESTAMP
可能不被支持作为默认值。解决方法:使用数据库特定的函数,例如在PostgreSQL中,可以使用now()
函数。
@Column(columnDefinition = "TIMESTAMP DEFAULT now()")
解决方法:如果需要在更新时也更改时间戳,可以考虑使用@PreUpdate
回调方法。
@PreUpdate
protected void onUpdate() {
this.updatedAt = new Date();
}
请注意,具体的实现可能会根据您使用的数据库系统和JPA提供商(如Hibernate)有所不同。务必查阅相关文档以确保兼容性。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云