将审计表中的引用放到Hibernate Envers中的另一个表中



我使用Hibernate Envers审计变更数据,我有一个类,存储有关公司的信息,如下所示:

@Getter
@Setter
@Entity
@Table(name = "COMPNAY")
@Audited
public class Compnay {
private String name;
private String code;
}

它使用Envers来保存公司的变化

同时,我有一个类来保存这个公司生产的产品的数据,这个类将是这样的:

@Getter
@Setter
@Entity
@Table(name = "COMPNAY")
@Audited
public class Item {
@Column(name = "NAME", nullable = false)
private String name ;
@Column(name = "CODE", nullable = false)
private String code;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID", nullable = false)
private Compnay compnay;
}

假设公司表中有这样一个公司:

<表类>ID名称代码tbody><<tr>1苹果1002IBM200

是的,您可以编写引用被审计实体的HQL查询。通常,被审计实体的名称与原始实体相同,后缀为_AUD,即您可以编写类似于以下的查询:

select c, i
from Company_AUD c
left join Item_AUD i on i.id.revision < c.id.revision
where c.originalId = :companyId

最新更新