From 0e1364fa148d54943668f3d99617dc5c1b09f6c9 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Tue, 10 Sep 2024 17:41:47 +1000 Subject: [PATCH] add AbstractBaseEntity for common entity properties --- .../commons/entity/AbstractBaseEntity.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 entity/src/main/java/sydney/cheng/microservice/commons/entity/AbstractBaseEntity.java diff --git a/entity/src/main/java/sydney/cheng/microservice/commons/entity/AbstractBaseEntity.java b/entity/src/main/java/sydney/cheng/microservice/commons/entity/AbstractBaseEntity.java new file mode 100644 index 0000000..16c2e22 --- /dev/null +++ b/entity/src/main/java/sydney/cheng/microservice/commons/entity/AbstractBaseEntity.java @@ -0,0 +1,32 @@ +package sydney.cheng.microservice.commons.entity; + +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; +import org.hibernate.annotations.UuidGenerator; + +import java.io.Serializable; +import java.time.LocalDateTime; + +@MappedSuperclass +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class AbstractBaseEntity implements Serializable { + @Id + @UuidGenerator(style = UuidGenerator.Style.TIME) + private String id; + + @CreationTimestamp + private LocalDateTime creationTimestamp; + + @UpdateTimestamp + private LocalDateTime updateTimestamp; +}