簡體   English   中英

休眠-記錄日期屬性首先獲得數據

[英]Hibernate - record date attribute first got data

我想記錄實體中的屬性首次獲取數據的日期。

例如:

@Entity
public class Sales(){

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String salesNote;

    @DateTimeFormat(pattern = "dd/MM/yyyy")
    private Date salesNoteCreationDate;
}

我嘗試通過比較以下方法在服務層中做到這一點:

    if (!saleView.getsalesNote().isEmpty() && saleDb.getPlan().getNotes().isEmpty()) {
        Date salesNoteCreationDate = new Date();
        saleView.setsalesNoteCreationDate(salesNoteCreationDate);
    }

這只有一半有效,因為沒有將salesNoteCreationDate發送到UI,如果上述測試失敗並且未設置日期,則saleViewnullsaleView覆蓋可能保存有效日期的saleDb值。

我懷疑通過使用@Version或Hibernate Listener可以有一種更簡單的方法-查看過Hibernate文檔后 ,在這個特定問題上我並不明智。

您為什么不把這個邏輯放在它所屬的地方:封裝在實體中,而不是在UI中?

@Entity
public class Sale {

    private String note;

    @DateTimeFormat(pattern = "dd/MM/yyyy")
    private Date noteCreationDate;

    public void setNote(String note) {
        if (this.note == null && note != null) {
            this.noteCreationDate = new Date();
        }
        this.note = note;
    }
}

請注意,我將您的實體重命名為Sale(因為該類的一個實例可能代表一個銷售,而不是多個銷售)。 另請注意,我在您的字段(即Sale類的字段)上刪除了sales前綴,從而使此前綴變得多余。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM