[英]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.