【问题标题】:How to customize AbstractAuditingEntity in jhipster如何在 jhipster 中自定义 AbstractAuditingEntity
【发布时间】:2016-05-18 10:20:56
【问题描述】:

我想在 AbstractAuditingEntity 中添加用户相关数据,例如他的 id

AbstractAuditingEntity 在创建的每个实体中添加 createdDate 之类的内容。我希望添加额外的实体,例如 用户的 id

因此,每当任何用户创建实体时,他的 id 都会与该记录以及创建日期一起添加。

【问题讨论】:

  • 请用问题更新您的答案。

标签: spring-boot jhipster


【解决方案1】:

您可以使用以下类作为所有实体的父类

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());
    }
}

实体如下:

 @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;
        }
}

我希望这个答案对你来说已经足够了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 2021-02-01
    相关资源
    最近更新 更多