Spring boot JPA @Entity создать временную переменную - PullRequest
0 голосов
/ 13 декабря 2018

Я использую JPA при весенней загрузке для сохранения информации в БД.У меня есть данные аудита, такие как creationDate и updationDate, и я сохраняю их в БД, сохраняя такие данные, как creationDate и updationDate, в методах @PrePersist и @PreUpdate.Я хочу, чтобы это обновление было условным, поэтому я добавил логический флаг boolean auditInformationFlag, но он рассматривает переменную audInformationFlag в качестве столбца базы данных.возможно ли иметь переходный атрибут в этом классе

@Entity
@Table(name = "TestDB")
public class TestEntity implements Serializable {
        @Column(name = "creationdate",nullable = false,  insertable = true, updatable = false)
    private Timestamp creationDate;

    @Column(name = "updationdate",nullable = false,  insertable = true, updatable = true)
    private Timestamp modificationDate;

    private boolean auditInformationFlag;


    public boolean isAuditInformationFlag() {
        return auditInformationFlag;
    }

    public void setAuditInformationFlag(boolean auditInformationFlag) {
        this.auditInformationFlag = auditInformationFlag;
    }

    public Timestamp getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Timestamp creationDate) {
        this.creationDate = creationDate;
    }


    public Timestamp getModificationDate() {
        return modificationDate;
    }

    public void setModificationDate(Timestamp modificationDate) {
        this.modificationDate = modificationDate;
    }

    @PrePersist
    protected void onCreate() {
        if(auditInformationFlag){
            this.setCreationDate(new Timestamp((new Date()).getTime()));
            this.setModificationDate(new Timestamp((new Date()).getTime()));            
        }
    }

    @PreUpdate
    protected void onUpdate() {
        if(auditInformationFlag){
            this.setModificationDate(new Timestamp((new Date()).getTime()));            
        }
    }
 }

1 Ответ

0 голосов
/ 13 декабря 2018

но она рассматривает переменную auditInformationFlag в качестве столбца базы данных

Поскольку необходимо аннотировать поле с помощью Transient . @ Аннотация Transient используется для указания того, что поле являетсяне сохраняется в базе данных.

вы можете создать временную переменную в классе сущностей, как показано ниже, поместив аннотацию @Transient поверх поля.

@Transient
private boolean auditInformationFlag ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...