休眠 - 存储历史记录

时间:2017-06-13 11:24:18

标签: database hibernate

我必须存储我的桌子的历史。 例如,如果我有实体:

@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的新实体PersonH​​istory,并在更新Person之前将Person保存状态作为PersonH​​istory吗?

更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

您是否需要存储每个人的更改,或者是否足以查看上次保存的时间?

如果您需要某种版本控制,也许您应该查看Hibernate Envers

如果足以看到,当这个人最后一次被修改时,我认为你的方法是可以的。

你可以自己创建一个历史表:

|ID | Field | changedate | before | after   |
+---+-------+------------+--------+---------+
| 1 | name  | timestamp  |Smith   | Smithes | 

但在你手工完成之前,我更喜欢envers。