private void checkEntityAudited(String entityName) { if ( !auditReaderImplementor.isEntityNameAudited( entityName ) ) { throw new NotAuditedException( entityName, "Cannot query audit history on a non-audited entity [" + entityName + "]." ); } } }
protected AbstractAuditQuery( EnversService enversService, AuditReaderImplementor versionsReader, Class<?> cls, String entityName) { this.enversService = enversService; this.versionsReader = versionsReader; criterions = new ArrayList<>(); entityInstantiator = new EntityInstantiator( enversService, versionsReader ); entityClassName = cls.getName(); this.entityName = entityName; versionsEntityName = enversService.getAuditEntitiesConfiguration().getAuditEntityName( entityName ); if ( !enversService.getEntitiesConfigurations().isVersioned( entityName ) ) { throw new NotAuditedException( entityName, "Entity [" + entityName + "] is not versioned" ); } aliasToEntityNameMap.put( REFERENCED_ENTITY_ALIAS, entityName ); qb = new QueryBuilder( versionsEntityName, REFERENCED_ENTITY_ALIAS, versionsReader.getSessionImplementor().getFactory() ); }
protected AbstractAuditQuery(AuditReaderImplementor versionsReader, Class<?> clazz, String entityName) { criterions = new ArrayList<>(); this.versionsReader = versionsReader; this.entityInstantiator = new EntityInstantiatorImpl( versionsReader ); this.entityClass = clazz; this.entityName = entityName; if ( !versionsReader.getAuditService().getEntityBindings().isVersioned( entityName ) ) { throw new NotAuditedException( entityName, "Entity [" + entityName + "] is not versioned" ); } aliasToEntityNameMap.put( REFERENCED_ENTITY_ALIAS, entityName ); this.auditEntityName = versionsReader.getAuditService().getAuditEntityName( entityName ); qb = new QueryBuilder( auditEntityName, REFERENCED_ENTITY_ALIAS, versionsReader.getSessionImplementor().getFactory() ); }
@Override @SuppressWarnings({"unchecked"}) public List<Number> getRevisions(Class<?> cls, String entityName, Object primaryKey) throws IllegalArgumentException, NotAuditedException, IllegalStateException { // todo: if a class is not versioned from the beginning, there's a missing ADD rev - what then? cls = getTargetClassIfProxied( cls ); checkNotNull( cls, "Entity class" ); checkNotNull( entityName, "Entity name" ); checkNotNull( primaryKey, "Primary key" ); checkSession(); if ( !auditService.getEntityBindings().isVersioned( entityName ) ) { throw new NotAuditedException( entityName, entityName + " is not versioned!" ); } return createQuery().forRevisionsOfEntity( cls, entityName, false, true ) .addProjection( AuditEntity.revisionNumber() ) .addOrder( AuditEntity.revisionNumber().asc() ) .add( AuditEntity.id().eq( primaryKey ) ) .getResultList(); }
throw new NotAuditedException( entityName, entityName + " is not versioned!" );