在历史表的一列中进行更改

时间:2010-06-15 10:18:33

标签: hibernate jpa hql

我有一张存储历史数据的表格。它映射到具有以下字段的实体(我使用JPA和Hibernate实现):

@Entity
@Table(name="items_historical")
public class ItemHistory{
    private Integer id;

    private Date date;

    @Enumerated(EnumType.ORDINAL)
    private StatusEnum status

    @ManyToOne(optional=false)
    private User user;

    @ManyToOne(optional=false)
    private Item item;
}

public enum StatusEnum {
OK, BAD,...//my status
}

在每一行中,我存储另一个表的历史数据。我需要获取“状态”列上的更改列表:指定项目的状态,日期和上一个状态(获取状态更改时的状态和日期会很好)。我不知道是否可以使用HQL。

感谢。

1 个答案:

答案 0 :(得分:2)

为什么不使用像Hibernate Envers(以前称为JBoss Envers)这样的解决方案来获取历史数据而不是设计自定义解决方案?我想你会发现Envers的功能非常引人注目。