我们想在一个可分页的列表中显示多个实体的修订版。 AuditQuery仅支持查询单个实体,如下例所示。
final AuditQuery documentQuery = auditReader.createQuery()
.forRevisionsOfEntity(Component.class, false, true)
.add(AuditEntity.id().eq(component.getId()))
.addOrder(AuditEntity.revisionNumber().desc())
.setMaxResults(10)
.setFirstResult(0);
我们真正想要的是一个查询实现,如下所示:
final AuditQuery documentQuery = auditReader.createQuery()
.forRevisionsOfEntities(Component.class, Type.class, false, true)
.add(AuditEntity.id().eq(Component.class, component.getId()))
.add(AuditEntity.id().eq(Type.class, type.getId()))
.addOrder(AuditEntity.revisionNumber().desc())
.setMaxResults(10)
.setFirstResult(0);
为了使事情更清楚-我只想使用AuditQuery查询多个实体,以从不同实体获取多个修订。
组件和类型之间的关系是一对多的
@Entity
@Table(name = "type")
@Audited(targetAuditMode = RelationTargetAuditMode.AUDITED)
public class Type extends AbstractAuditingEntity implements Serializable,Externalized {
// ...
@OneToMany(mappedBy = "type")
@Audited(targetAuditMode = AUDITED)
private Set<Component> components = new HashSet<>();
// ...
}
@Entity
@Table(name = "component")
@Audited(targetAuditMode = RelationTargetAuditMode.AUDITED)
public class Component extends AbstractAuditingEntity implements Serializable, Externalized {
// ...
@ManyToOne
@Audited(targetAuditMode = AUDITED)
private Type type;
// ...
}
任何帮助将不胜感激。在此先感谢-西蒙