Interface AuditStrategy
-
- All Known Subinterfaces:
AuditStrategy
- All Known Implementing Classes:
DefaultAuditStrategy
,DefaultAuditStrategy
,ValidityAuditStrategy
,ValidityAuditStrategy
@Incubating public interface AuditStrategy
A strategy abstraction for how to audit entity changes.- Since:
- 5.4
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default void
addAdditionalColumns(MappingContext mappingContext)
Add additional columns to the audit mappings.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(Configuration configuration, 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, Configuration configuration, Object id, Object data, Object revision)
Perform the persistence of audited data for regular entities.void
performCollectionChange(Session session, String entityName, String propertyName, Configuration configuration, PersistentCollectionChangeData persistentCollectionChangeData, Object revision)
Perform the persistence of audited data for collection ("middle") entities.default void
postInitialize(AuditStrategyContext context)
Performs post initialization of the audit strategy implementation.
-
-
-
Method Detail
-
addAdditionalColumns
default void addAdditionalColumns(MappingContext mappingContext)
Add additional columns to the audit mappings.- Parameters:
mappingContext
- The mapping context.
-
postInitialize
default void postInitialize(AuditStrategyContext context)
Performs post initialization of the audit strategy implementation.- Parameters:
context
- the audit strategy context, nevernull
-
perform
void perform(Session session, String entityName, Configuration configuration, Object 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 happensconfiguration
- The audit entity configuration.id
- Id of the entity.data
- Audit data to persist.revision
- Current revision data.
-
performCollectionChange
void performCollectionChange(Session session, String entityName, String propertyName, Configuration configuration, 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 persistent collectionconfiguration
- audit configurationpersistentCollectionChangeData
- Collection change data to be persisted.revision
- Current revision data
-
addEntityAtRevisionRestriction
void addEntityAtRevisionRestriction(Configuration configuration, 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.- Parameters:
configuration
- theConfiguration
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
-
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.- 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
-
-