diff --git a/src/main/java/aplp/backend/core/common/entity/BaseEntity.java b/src/main/java/aplp/backend/core/common/entity/BaseEntity.java new file mode 100644 index 0000000..145f006 --- /dev/null +++ b/src/main/java/aplp/backend/core/common/entity/BaseEntity.java @@ -0,0 +1,45 @@ +package aplp.backend.core.common.entity; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +@Getter +@Setter +@MappedSuperclass +public abstract class BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "created_at", nullable = false, updatable = false) + private LocalDateTime createdAt; + + @Column(name = "created_by", length = 50, updatable = false) + private String createdBy; + + @Column(name = "updated_at") + private LocalDateTime updatedAt; + + @Column(name = "updated_by", length = 50) + private String updatedBy; + + @Column(name = "deleted_at") + private LocalDateTime deletedAt; + + @Column(name = "deleted_by", length = 50) + private String deletedBy; + + @PrePersist + protected void onCreate() { + this.createdAt = LocalDateTime.now(); + } + + @PreUpdate + protected void onUpdate() { + this.updatedAt = LocalDateTime.now(); + } +}