2020-06-10 19:38:38 +07:00
|
|
|
package com.cubetiqs.demo.domain;
|
|
|
|
|
2020-06-18 19:47:20 +07:00
|
|
|
import com.cubetiqs.demo.Constants;
|
2020-06-10 19:38:38 +07:00
|
|
|
import org.springframework.data.domain.Persistable;
|
|
|
|
|
|
|
|
import javax.persistence.*;
|
|
|
|
import java.io.Serializable;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
@MappedSuperclass
|
|
|
|
public class BaseEntity<ID extends Serializable> implements Serializable, Persistable<ID> {
|
|
|
|
@Id
|
|
|
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
|
|
|
private ID id;
|
|
|
|
|
2020-06-15 19:38:02 +07:00
|
|
|
@Column(name = "created_date", updatable = false)
|
2020-06-10 19:38:38 +07:00
|
|
|
@Temporal(TemporalType.TIMESTAMP)
|
|
|
|
private Date createdDate;
|
|
|
|
|
2020-06-18 19:47:20 +07:00
|
|
|
@Column(name = Constants.STATUS)
|
|
|
|
@Enumerated(EnumType.ORDINAL)
|
|
|
|
private Status status;
|
|
|
|
|
2020-06-10 19:38:38 +07:00
|
|
|
public void setId(ID id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ID getId() {
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isNew() {
|
|
|
|
return id == null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Date getCreatedDate() {
|
|
|
|
return createdDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setCreatedDate(Date createdDate) {
|
|
|
|
this.createdDate = createdDate;
|
|
|
|
}
|
|
|
|
|
2020-06-18 19:47:20 +07:00
|
|
|
public void setStatus(Status status) {
|
|
|
|
this.status = status;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Status getStatus() {
|
|
|
|
return status;
|
|
|
|
}
|
|
|
|
|
2020-06-10 19:38:38 +07:00
|
|
|
@PrePersist
|
|
|
|
public void beforeSave() {
|
|
|
|
if (createdDate == null) {
|
|
|
|
createdDate = new Date();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|