there problem - have watch state of table entities date.
please tell me how implement task via envers, or solution better , easier envers
i use in project spring-boot, spring-data , hibernate. tried use hibernate-envers. code looks this, not solved problem:
list list = auditreader.createquery() .forrevisionsofentity(entity.class, false, true) .addorder(auditentity.revisionnumber().desc()) .addprojection(auditentity.property("id").distinct()) .add(auditentity.revisionnumber().le(auditreader.getrevisionnumberfordate(new date()))) .getresultlist();
i found solution in question.
list = auditreader.createquery() .forrevisionsofentity(entity.class, true, true) .add(auditentity.revisionnumber().le(auditreader.getrevisionnumberfordate(date))) .add(auditentity.revisionnumber().maximize().computeaggregationininstancecontext()) .add(auditentity.revisiontype().ne(revisiontype.del)) .getresultlist(); this query returns ready list of entities. function 'computeaggregationininstancecontext()' works according documentation , group statement:
compute aggregated expression in context of each entity instance separately.
dont forget catch 'revisiondoesnotexistexception', in case return empty list
Comments
Post a Comment