【问题标题】:How to get audit revisions of Many To Many joined table using Envers audit query如何使用 Envers 审计查询获取多对多连接表的审计修订
【发布时间】:2019-03-18 09:10:04
【问题描述】:
我有两个域(用户、角色)。两者都是多对多的关系。 hibernate 自动生成 3 个表(用户、角色、用户角色)。
我已集成 hibernate envers 用于审计目的。我可以从用户和角色表中获得修订。如何从 UserRole 审计表中获取审计修订。
在这里,我们没有创建 UserRole 域。基于多对多关系,UserRole 表自动创建。所以没有域(UserRole)可以从 UserRole 审计表用户审计查询中获取审计修订。
【问题讨论】:
标签:
hibernate
hibernate-envers
【解决方案1】:
由于UserRole 是一个连接表,您可能希望从该多对多关系的拥有方访问对该关联的更改。例如,我将假设User 是该协会的所有者;因此您可以访问类似于以下内容的内容:
User user = auditReader.find( User.class, userId, revisionNumber );
List<UserRole> userRoles = user.getUserRoles();
上面将为您提供revisionNumber 的连接表中的所有UserRole 实体,用于User,指定标识符值为userId。