【发布时间】:2019-05-30 07:22:10
【问题描述】:
考虑一辆有合同、修改、维护、经销商等的汽车...... 当合同中有更新时,您会找到 revision_id 和 revision_timestemp,如果您转到 contract_aud,您可以通过 reivsion_id 找到新版本。
我的目标是向最终用户提供一个他可以询问的查询:cars(复数)在 startDate 和 endDate 之间有哪些修订。请注意,修订可以在合同/维护/经销商等...(我只关心汽车的 ID)
根据我今天的情况,可以通过以下方式按日期查询:
AuditReader auditReader = AuditReaderFactory.get(em);
AuditQuery q = auditReader.createQuery().forRevisionsOfEntity(Car.class, false, true);
q.add(AuditEntity.revisionProperty("timestamp").ge(startDate.getTime()));
q.add(AuditEntity.revisionProperty("timestamp").lt(endDate.getTime()));
但您可以注意到,我发送的是 Car.class,如果在“contract”中进行了修订,我将不得不发送 Contract.class(以及稍后获取汽车的 ID)
我有 20 多个带有后缀 _AUD 的表,所以去数据库 20 次是没有意义的。
问题:如何查询日期和修订号之间发生的修订以及已更改的对象。
【问题讨论】:
标签: java hibernate audit hibernate-envers