41 lines
1.1 KiB
Java
41 lines
1.1 KiB
Java
package zw.qantra.tm.domain.models;
|
|
|
|
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)
|
|
private LocalDateTime createdAt; // Or Date, Timestamp
|
|
|
|
@UpdateTimestamp
|
|
@Column(name = "updated_at", nullable = true)
|
|
private LocalDateTime updatedAt; // Or Date, Timestamp
|
|
|
|
}
|