List of usage examples for org.hibernate.envers AuditReaderFactory get
public static AuditReader get(EntityManager entityManager) throws AuditException
From source file:ch.puzzle.itc.mobiliar.business.auditview.control.AuditService.java
License:Open Source License
public List<AuditViewEntry> getAuditViewEntriesForResource(Integer resourceId) { // Map<Hashcode, AuditViewEntry> Map<Integer, AuditViewEntry> allAuditViewEntries = new HashMap<>(); AuditReader reader = AuditReaderFactory.get(entityManager); CrossTypeRevisionChangesReader crossTypeRevisionChangesReader = reader.getCrossTypeRevisionChangesReader(); List<MyRevisionEntity> revisionsForResource = getRevisionsForResource(resourceId); for (MyRevisionEntity revisionEntity : revisionsForResource) { List<Object> changedEntitiesForRevision = crossTypeRevisionChangesReader .findEntities(revisionEntity.getId()); for (Object o : changedEntitiesForRevision) { List resultList = reader.createQuery().forRevisionsOfEntity(o.getClass(), false, true) .add(AuditEntity.revisionNumber().eq(revisionEntity.getId())).getResultList(); createAuditViewEntriesAndAddToMap(allAuditViewEntries, resultList); }//from w ww. j ava 2 s .c om } return new ArrayList<>(allAuditViewEntries.values()); }
From source file:ch.puzzle.itc.mobiliar.business.auditview.control.AuditService.java
License:Open Source License
/** * @return a list of three-element arrays, containing: * <ol>//from w w w. java 2 s. c o m * <li>the entity instance</li> * <li>revision entity, corresponding to the revision at which the entity was modified. If no custom * revision entity is used, this will be an instance of {@link org.hibernate.envers.DefaultRevisionEntity}</li> * <li>type of the revision (an enum instance of class {@link org.hibernate.envers.RevisionType})</li> * </ol> */ private <T> List getAllRevisionsForEntity(T entity, Integer id) { Objects.requireNonNull(entity, "Entity can not be null"); Objects.requireNonNull(id, "Id can not be null"); AuditReader reader = AuditReaderFactory.get(entityManager); Number revisionNumberOneYearAgo = getRevisionNumberOneYearAgo(reader); if (reader.isEntityClassAudited(entity.getClass())) { AuditQuery query = reader.createQuery().forRevisionsOfEntity(entity.getClass(), false, true) .add(AuditEntity.id().eq(id)).add(AuditEntity.revisionNumber().gt(revisionNumberOneYearAgo)) .addOrder(AuditEntity.revisionNumber().desc()); return (List<T>) query.getResultList(); } return null; }
From source file:ch.puzzle.itc.mobiliar.business.database.control.AmwAuditReader.java
License:Open Source License
protected AuditReader getAuditReader() { return AuditReaderFactory.get(entityManager); }
From source file:ch.puzzle.itc.mobiliar.business.function.boundary.FunctionsBoundary.java
License:Open Source License
/** * Returns a AmwFunctionEntity identified by its id and revision id */// w w w .j a v a 2 s . c om public AmwFunctionEntity getFunctionByIdAndRevision(Integer functionId, Number revisionId) { AmwFunctionEntity amwFunctionEntity = AuditReaderFactory.get(entityManager).find(AmwFunctionEntity.class, functionId, revisionId); return amwFunctionEntity; }
From source file:ch.puzzle.itc.mobiliar.business.function.boundary.FunctionsBoundary.java
License:Open Source License
/** * Returns all RevisionInformation for the specified function id *///from www .j a v a 2 s . c o m public List<RevisionInformation> getFunctionRevisions(Integer functionId) { List<RevisionInformation> result = new ArrayList<>(); if (functionId != null) { AuditReader reader = AuditReaderFactory.get(entityManager); List<Number> list = reader.getRevisions(AmwFunctionEntity.class, functionId); for (Number rev : list) { Date date = reader.getRevisionDate(rev); MyRevisionEntity myRev = entityManager.find(MyRevisionEntity.class, rev); result.add(new RevisionInformation(rev, date, myRev.getUsername())); } Collections.sort(result); } return result; }
From source file:ch.puzzle.itc.mobiliar.business.globalfunction.boundary.GlobalFunctionsBoundary.java
License:Open Source License
/** * Returns a AmwFunctionEntity identified by its id and revision id *//*from ww w. j a v a 2s . co m*/ public GlobalFunctionEntity getFunctionByIdAndRevision(Integer functionId, Number revisionId) { GlobalFunctionEntity globalFunctionEntity = AuditReaderFactory.get(entityManager) .find(GlobalFunctionEntity.class, functionId, revisionId); return globalFunctionEntity; }
From source file:ch.puzzle.itc.mobiliar.business.globalfunction.boundary.GlobalFunctionsBoundary.java
License:Open Source License
/** * Returns all RevisionInformation for the specified function id *//*from www . j a v a2s . c o m*/ public List<RevisionInformation> getFunctionRevisions(Integer functionId) { List<RevisionInformation> result = new ArrayList<RevisionInformation>(); if (functionId != null) { AuditReader reader = AuditReaderFactory.get(entityManager); List<Number> list = reader.getRevisions(GlobalFunctionEntity.class, functionId); for (Number rev : list) { Date date = reader.getRevisionDate(rev); MyRevisionEntity myRev = entityManager.find(MyRevisionEntity.class, rev); result.add(new RevisionInformation(rev, date, myRev.getUsername())); } Collections.sort(result); } return result; }
From source file:ch.puzzle.itc.mobiliar.business.template.boundary.TemplateEditor.java
License:Open Source License
public TemplateDescriptorEntity getTemplateByIdAndRevision(Integer templateId, Number revisionId) { TemplateDescriptorEntity templateDescriptorEntity = AuditReaderFactory.get(entityManager) .find(TemplateDescriptorEntity.class, templateId, revisionId); //We have to ensure, that the target platforms are loaded. To make sure, that the compiler doesn't optimize the access to the target platforms away, we have to do this ugly hack. templateDescriptorEntity.getTargetPlatforms().size(); return templateDescriptorEntity; }
From source file:ch.puzzle.itc.mobiliar.business.template.boundary.TemplateEditor.java
License:Open Source License
public List<RevisionInformation> getTemplateRevisions(Integer templateId) { List<RevisionInformation> result = new ArrayList<>(); AuditReader reader = AuditReaderFactory.get(entityManager); List<Number> list = reader.getRevisions(TemplateDescriptorEntity.class, templateId); for (Number rev : list) { Date date = reader.getRevisionDate(rev); MyRevisionEntity myRev = entityManager.find(MyRevisionEntity.class, rev); result.add(new RevisionInformation(rev, date, myRev.getUsername())); }//from w w w . j a v a2 s . c o m Collections.sort(result); return result; }
From source file:ch.puzzle.itc.mobiliar.envers.EnversAssumptionTests.java
License:Open Source License
@Before public void setup() throws Exception { auditReader = AuditReaderFactory.get(entityManager); // We create a context entity c = new ContextEntity(); persistAndCommitTransaction(c);//www .j a v a 2s .c o m // and we memorize the last revision number before we continue revisionInBetween = auditReader.getRevisionNumberForDate(new Date()); // We define a property and add it to the context property = new PropertyDescriptorEntity(); property.setPropertyComment("comment"); // save first revision c.addPropertyDescriptor(property); persistAndCommitTransaction(property); revisionAfter = auditReader.getRevisionNumberForDate(new Date()); property.setPropertyComment("newComment"); persistAndCommitTransaction(property); revisionLatest = auditReader.getRevisionNumberForDate(new Date()); }