org.hibernate.envers.strategy
Interface AuditStrategy

All Known Implementing Classes:
DefaultAuditStrategy, ValidityAuditStrategy, ValidTimeAuditStrategy

public interface AuditStrategy

Behaviours of different audit strategy for populating audit data.


Method Summary
 void addAssociationAtRevisionRestriction(QueryBuilder rootQueryBuilder, Parameters parameters, String revisionProperty, String revisionEndProperty, boolean addAlias, MiddleIdData referencingIdData, String versionsMiddleEntityName, String eeOriginalIdPropertyPath, String revisionPropertyPath, String originalIdPropertyName, String alias1, boolean inclusive, MiddleComponentData... componentDatas)
          Update the rootQueryBuilder with an extra WHERE clause to restrict the revision for a middle-entity association.
 void addEntityAtRevisionRestriction(GlobalConfiguration globalCfg, QueryBuilder rootQueryBuilder, Parameters parameters, String revisionProperty, String revisionEndProperty, boolean addAlias, MiddleIdData idData, String revisionPropertyPath, String originalIdPropertyName, String alias1, String alias2, boolean inclusive)
          Update the rootQueryBuilder with an extra WHERE clause to restrict the revision for a two-entity relation.
 void perform(Session session, String entityName, AuditConfiguration auditCfg, Serializable id, Object data, Object revision)
          Perform the persistence of audited data for regular entities.
 void performCollectionChange(Session session, String entityName, String propertyName, AuditConfiguration auditCfg, PersistentCollectionChangeData persistentCollectionChangeData, Object revision)
          Perform the persistence of audited data for collection ("middle") entities.
 

Method Detail

perform

void perform(Session session,
             String entityName,
             AuditConfiguration auditCfg,
             Serializable id,
             Object data,
             Object revision)
Perform the persistence of audited data for regular entities.

Parameters:
session - Session, which can be used to persist the data.
entityName - Name of the entity, in which the audited change happens
auditCfg - Audit configuration
id - Id of the entity.
data - Audit data to persist
revision - Current revision data

performCollectionChange

void performCollectionChange(Session session,
                             String entityName,
                             String propertyName,
                             AuditConfiguration auditCfg,
                             PersistentCollectionChangeData persistentCollectionChangeData,
                             Object revision)
Perform the persistence of audited data for collection ("middle") entities.

Parameters:
session - Session, which can be used to persist the data.
entityName - Name of the entity, in which the audited change happens.
propertyName - The name of the property holding the PersistentCollection.
auditCfg - Audit configuration
persistentCollectionChangeData - Collection change data to be persisted.
revision - Current revision data

addEntityAtRevisionRestriction

void addEntityAtRevisionRestriction(GlobalConfiguration globalCfg,
                                    QueryBuilder rootQueryBuilder,
                                    Parameters parameters,
                                    String revisionProperty,
                                    String revisionEndProperty,
                                    boolean addAlias,
                                    MiddleIdData idData,
                                    String revisionPropertyPath,
                                    String originalIdPropertyName,
                                    String alias1,
                                    String alias2,
                                    boolean inclusive)
Update the rootQueryBuilder with an extra WHERE clause to restrict the revision for a two-entity relation. This WHERE clause depends on the AuditStrategy, as follows:

Parameters:
globalCfg - the GlobalConfiguration
rootQueryBuilder - the QueryBuilder that will be updated
parameters - root parameters to which restrictions shall be added
revisionProperty - property of the revision column
revisionEndProperty - property of the revisionEnd column (only used for ValidityAuditStrategy)
addAlias - boolean indicator if a left alias is needed
idData - id-information for the two-entity relation (only used for DefaultAuditStrategy)
revisionPropertyPath - path of the revision property (only used for ValidityAuditStrategy)
originalIdPropertyName - name of the id property (only used for ValidityAuditStrategy)
alias1 - an alias used for subquery (only used for ValidityAuditStrategy)
alias2 - an alias used for subquery (only used for ValidityAuditStrategy)
inclusive - indicates whether revision number shall be treated as inclusive or exclusive

addAssociationAtRevisionRestriction

void addAssociationAtRevisionRestriction(QueryBuilder rootQueryBuilder,
                                         Parameters parameters,
                                         String revisionProperty,
                                         String revisionEndProperty,
                                         boolean addAlias,
                                         MiddleIdData referencingIdData,
                                         String versionsMiddleEntityName,
                                         String eeOriginalIdPropertyPath,
                                         String revisionPropertyPath,
                                         String originalIdPropertyName,
                                         String alias1,
                                         boolean inclusive,
                                         MiddleComponentData... componentDatas)
Update the rootQueryBuilder with an extra WHERE clause to restrict the revision for a middle-entity association. This WHERE clause depends on the AuditStrategy, as follows:

Parameters:
rootQueryBuilder - the QueryBuilder that will be updated
parameters - root parameters to which restrictions shall be added
revisionProperty - property of the revision column
revisionEndProperty - property of the revisionEnd column (only used for ValidityAuditStrategy)
addAlias - boolean indicator if a left alias is needed
referencingIdData - id-information for the middle-entity association (only used for DefaultAuditStrategy)
versionsMiddleEntityName - name of the middle-entity
eeOriginalIdPropertyPath - name of the id property (only used for ValidityAuditStrategy)
revisionPropertyPath - path of the revision property (only used for ValidityAuditStrategy)
originalIdPropertyName - name of the id property (only used for ValidityAuditStrategy)
alias1 - an alias used for subqueries (only used for DefaultAuditStrategy)
inclusive - indicates whether revision number shall be treated as inclusive or exclusive
componentDatas - information about the middle-entity relation


Copyright © 2001-2015 Red Hat, Inc. All Rights Reserved.