Sie können die folgende Klasse, die als Elternklasse für alle
Einheiten verwenden
import java.io.Serializable;
import java.util.UUID;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Version;
import javax.validation.constraints.NotNull;
import org.joda.time.DateTime;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import com.skeleton.util.RequestContext;
/**
* The parent class for all transactional persistent entities.
*
* @author shijazi
*/
@MappedSuperclass // here is the important annotation
public class TransactionalEntity implements Serializable {
/**
* The default serial version UID.
*/
private static final long serialVersionUID = 1L;
/**
* The primary key identifier.
*/
@Id
@GeneratedValue
private Long id;
/**
* A secondary unique identifier which may be used as a reference to this
* entity by external systems.
*/
@NotNull
private String referenceId = UUID.randomUUID().toString();
/**
* The entity instance version used for optimistic locking.
*/
@Version
private Integer version;
/**
* A reference to the entity or process which created this entity instance.
*/
@NotNull
private String createdBy;
/**
* The timestamp when this entity instance was created.
*/
@NotNull
private DateTime createdAt;
/**
* A reference to the entity or process which most recently updated this
* entity instance.
*/
private String updatedBy;
/**
* The timestamp when this entity instance was most recently updated.
*/
private DateTime updatedAt;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getReferenceId() {
return referenceId;
}
public void setReferenceId(String referenceId) {
this.referenceId = referenceId;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public DateTime getCreatedAt() {
return createdAt;
}
public void setCreatedAt(DateTime createdAt) {
this.createdAt = createdAt;
}
public String getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
public DateTime getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(DateTime updatedAt) {
this.updatedAt = updatedAt;
}
@PrePersist
public void beforePersist() {
setCreatedBy(username);
setCreatedAt(new DateTime());
}
@PreUpdate
public void beforeUpdate() {
setUpdatedBy(username);
setUpdatedAt(new DateTime());
}
}
und das Unternehmen wie folgt aus:
@Entity
public class Person extends TransactionalEntity{
@NotNull
private String personId;
private String arabicName;
private String englishName;
public String getPersonId() {
return personId;
}
public void setPersonId(String personId) {
this.personId = personId;
}
public String getArabicName() {
return arabicName;
}
public void setArabicName(String arabicName) {
this.arabicName = arabicName;
}
public String getEnglishName() {
return englishName;
}
public void setEnglishName(String englishName) {
this.englishName = englishName;
}
}
Ich hoffe, diese Antwort für Sie
Bitte genug ist, Aktualisiere deine Antwort mit einer Frage. – LoicTheAztec