我有一张存储历史数据的表格。它映射到具有以下字段的实体(我使用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。
感谢。
答案 0 :(得分:2)
为什么不使用像Hibernate Envers(以前称为JBoss Envers)这样的解决方案来获取历史数据而不是设计自定义解决方案?我想你会发现Envers的功能非常引人注目。