backend-demo-tn/src/main/java/com/cubetiqs/demo/domain/BaseEntity.java

48 lines
989 B
Java

package com.cubetiqs.demo.domain;
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;
@Column(name = "created_date", updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate;
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;
}
@PrePersist
public void beforeSave() {
if (createdDate == null) {
createdDate = new Date();
}
}
}