[英]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,如果上述測試失敗並且未設置日期,則saleView
的null
值saleView
覆蓋可能保存有效日期的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.