2017-06-13 106 views
0

我必须存储我的表的历史记录。 例如,如果我有实体:休眠 - 存储历史

@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; 
} 

应创建新的实体PersonH​​istory与现场的人,以及更新个人储蓄人的状态PersonH​​istory过吗?

是更简单的方法吗?

回答

2

您是否需要将所有变化存储在您的个人中,还是足以查看上次保存的时间?

如果你需要某种版本的,也许你应该在Hibernate Envers

看看如果it's足以看出,当人被修改的最后一次,你的做法是好的,我想。

你可以创建你自己的历史表是这样的:

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

但你这样做手工之前,我宁愿envers。