我必须存储我的桌子的历史。 例如,如果我有实体:
@Entity
@EntityListener(AuditingEntityListener.class)
public class Person {
@Id
@GeneartedValue(startegy = GenerationType.IDENTITY)
private Long id;
private String name;
@CreatedDate
@Temporal(TemporalType.DATE)
private Date createDate;
@LastModifiedDate
@Temporal(TemporalType.DATE)
private Date lastModifiedDate;
}
我应该创建具有字段Person的新实体PersonHistory,并在更新Person之前将Person保存状态作为PersonHistory吗?
更简单的方法吗?
答案 0 :(得分:2)
您是否需要存储每个人的更改,或者是否足以查看上次保存的时间?
如果您需要某种版本控制,也许您应该查看Hibernate Envers
如果足以看到,当这个人最后一次被修改时,我认为你的方法是可以的。
你可以自己创建一个历史表:
|ID | Field | changedate | before | after |
+---+-------+------------+--------+---------+
| 1 | name | timestamp |Smith | Smithes |
但在你手工完成之前,我更喜欢envers。