Files
velocity-pay-springboot/src/main/java/zw/qantra/tm/domain/models/BaseEntity.java

45 lines
1.4 KiB
Java

package zw.qantra.tm.domain.models;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.Column;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.annotations.UpdateTimestamp;
import org.hibernate.type.SqlTypes;
import java.time.LocalDateTime;
import java.util.UUID;
@Getter
@Setter
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
@JdbcTypeCode(SqlTypes.UUID)
@Column(name = "id", updatable = false, nullable = false)
private UUID id;
@CreationTimestamp
@Column(name = "created_at", nullable = true, updatable = false)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS")
private LocalDateTime createdAt; // Or Date, Timestamp
@UpdateTimestamp
@Column(name = "updated_at", nullable = true)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS")
private LocalDateTime updatedAt; // Or Date, Timestamp
private Boolean deleted = false;
}