Package org.hibernate.envers.strategy
Class DefaultAuditStrategy
- java.lang.Object
-
- org.hibernate.envers.strategy.DefaultAuditStrategy
-
- All Implemented Interfaces:
AuditStrategy
public class DefaultAuditStrategy extends java.lang.Object implements AuditStrategy
Default strategy is to simply persist the audit data.
-
-
Constructor Summary
Constructors Constructor Description DefaultAuditStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAssociationAtRevisionRestriction(org.hibernate.envers.internal.tools.query.QueryBuilder rootQueryBuilder, org.hibernate.envers.internal.tools.query.Parameters parameters, java.lang.String revisionProperty, java.lang.String revisionEndProperty, boolean addAlias, org.hibernate.envers.internal.entities.mapper.relation.MiddleIdData referencingIdData, java.lang.String versionsMiddleEntityName, java.lang.String eeOriginalIdPropertyPath, java.lang.String revisionPropertyPath, java.lang.String originalIdPropertyName, java.lang.String alias1, boolean inclusive, org.hibernate.envers.internal.entities.mapper.relation.MiddleComponentData... componentDatas)
Update the rootQueryBuilder with an extra WHERE clause to restrict the revision for a middle-entity association.void
addEntityAtRevisionRestriction(org.hibernate.envers.configuration.internal.GlobalConfiguration globalCfg, org.hibernate.envers.internal.tools.query.QueryBuilder rootQueryBuilder, org.hibernate.envers.internal.tools.query.Parameters parameters, java.lang.String revisionProperty, java.lang.String revisionEndProperty, boolean addAlias, org.hibernate.envers.internal.entities.mapper.relation.MiddleIdData idData, java.lang.String revisionPropertyPath, java.lang.String originalIdPropertyName, java.lang.String alias1, java.lang.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, java.lang.String entityName, org.hibernate.envers.configuration.internal.AuditEntitiesConfiguration auditEntitiesConfiguration, java.io.Serializable id, java.lang.Object data, java.lang.Object revision)
Perform the persistence of audited data for regular entities.void
performCollectionChange(Session session, java.lang.String entityName, java.lang.String propertyName, org.hibernate.envers.configuration.internal.AuditEntitiesConfiguration auditEntitiesConfiguration, org.hibernate.envers.internal.entities.mapper.PersistentCollectionChangeData persistentCollectionChangeData, java.lang.Object revision)
Perform the persistence of audited data for collection ("middle") entities.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.envers.strategy.AuditStrategy
perform, performCollectionChange
-
-
-
-
Method Detail
-
perform
public void perform(Session session, java.lang.String entityName, org.hibernate.envers.configuration.internal.AuditEntitiesConfiguration auditEntitiesConfiguration, java.io.Serializable id, java.lang.Object data, java.lang.Object revision)
Description copied from interface:AuditStrategy
Perform the persistence of audited data for regular entities.- Specified by:
perform
in interfaceAuditStrategy
- Parameters:
session
- Session, which can be used to persist the data.entityName
- Name of the entity, in which the audited change happensauditEntitiesConfiguration
- The audit entity configuration.id
- Id of the entity.data
- Audit data to persist.revision
- Current revision data.
-
performCollectionChange
public void performCollectionChange(Session session, java.lang.String entityName, java.lang.String propertyName, org.hibernate.envers.configuration.internal.AuditEntitiesConfiguration auditEntitiesConfiguration, org.hibernate.envers.internal.entities.mapper.PersistentCollectionChangeData persistentCollectionChangeData, java.lang.Object revision)
Description copied from interface:AuditStrategy
Perform the persistence of audited data for collection ("middle") entities.- Specified by:
performCollectionChange
in interfaceAuditStrategy
- 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 persistent collectionauditEntitiesConfiguration
- audit entity configurationpersistentCollectionChangeData
- Collection change data to be persisted.revision
- Current revision data
-
addEntityAtRevisionRestriction
public void addEntityAtRevisionRestriction(org.hibernate.envers.configuration.internal.GlobalConfiguration globalCfg, org.hibernate.envers.internal.tools.query.QueryBuilder rootQueryBuilder, org.hibernate.envers.internal.tools.query.Parameters parameters, java.lang.String revisionProperty, java.lang.String revisionEndProperty, boolean addAlias, org.hibernate.envers.internal.entities.mapper.relation.MiddleIdData idData, java.lang.String revisionPropertyPath, java.lang.String originalIdPropertyName, java.lang.String alias1, java.lang.String alias2, boolean inclusive)
Description copied from interface:AuditStrategy
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:- For
DefaultAuditStrategy
a subquery is created:e.revision = (SELECT max(...) ...)
- for
ValidityAuditStrategy
the revision-end column is used:e.revision <= :revision and (e.endRevision > :revision or e.endRevision is null)
- Specified by:
addEntityAtRevisionRestriction
in interfaceAuditStrategy
- Parameters:
globalCfg
- theGlobalConfiguration
rootQueryBuilder
- theQueryBuilder
that will be updatedparameters
- root parameters to which restrictions shall be addedrevisionProperty
- property of the revision columnrevisionEndProperty
- property of the revisionEnd column (only used forValidityAuditStrategy
)addAlias
-boolean
indicator if a left alias is neededidData
- id-information for the two-entity relation (only used forDefaultAuditStrategy
)revisionPropertyPath
- path of the revision property (only used forValidityAuditStrategy
)originalIdPropertyName
- name of the id property (only used forValidityAuditStrategy
)alias1
- an alias used for subquery (only used forValidityAuditStrategy
)alias2
- an alias used for subquery (only used forValidityAuditStrategy
)inclusive
- indicates whether revision number shall be treated as inclusive or exclusive
- For
-
addAssociationAtRevisionRestriction
public void addAssociationAtRevisionRestriction(org.hibernate.envers.internal.tools.query.QueryBuilder rootQueryBuilder, org.hibernate.envers.internal.tools.query.Parameters parameters, java.lang.String revisionProperty, java.lang.String revisionEndProperty, boolean addAlias, org.hibernate.envers.internal.entities.mapper.relation.MiddleIdData referencingIdData, java.lang.String versionsMiddleEntityName, java.lang.String eeOriginalIdPropertyPath, java.lang.String revisionPropertyPath, java.lang.String originalIdPropertyName, java.lang.String alias1, boolean inclusive, org.hibernate.envers.internal.entities.mapper.relation.MiddleComponentData... componentDatas)
Description copied from interface:AuditStrategy
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:- For
DefaultAuditStrategy
a subquery is created:e.revision = (SELECT max(...) ...)
- for
ValidityAuditStrategy
the revision-end column is used:e.revision <= :revision and (e.endRevision > :revision or e.endRevision is null)
- Specified by:
addAssociationAtRevisionRestriction
in interfaceAuditStrategy
- Parameters:
rootQueryBuilder
- theQueryBuilder
that will be updatedparameters
- root parameters to which restrictions shall be addedrevisionProperty
- property of the revision columnrevisionEndProperty
- property of the revisionEnd column (only used forValidityAuditStrategy
)addAlias
-boolean
indicator if a left alias is neededreferencingIdData
- id-information for the middle-entity association (only used forDefaultAuditStrategy
)versionsMiddleEntityName
- name of the middle-entityeeOriginalIdPropertyPath
- name of the id property (only used forValidityAuditStrategy
)revisionPropertyPath
- path of the revision property (only used forValidityAuditStrategy
)originalIdPropertyName
- name of the id property (only used forValidityAuditStrategy
)alias1
- an alias used for subqueries (only used forDefaultAuditStrategy
)inclusive
- indicates whether revision number shall be treated as inclusive or exclusivecomponentDatas
- information about the middle-entity relation
- For
-
-