Class AuditSearchQuery
- java.lang.Object
-
- de.hybris.platform.persistence.audit.gateway.AuditSearchQuery
-
public class AuditSearchQuery extends java.lang.ObjectThe
AuditSearchQueryobject keeps all necessary information to perform query against audit tables viaReadAuditGateway. It allows to search in standard type related audit tables as well as in link related audit tables.Underlying implementation of
ReadAuditGatewayis not known, in other words it may or may not be backed by JDBC storage, thusAuditSearchQueryobject keeps only information about Type to be searched and collection ofSearchRuleobjects which are defining which fields in audit table or which attributes/values in audit payload must be searched. Audit data is divided into two parts - standard metadata and payload data which contains exact state of all attributes of audited item.SearchRuleobject contains methodSearchRule.isForPayload()which gives implementor of underlyingReadAuditGatewayinformation about how to search audit records.Although this class allows to craft a query which in result reads entire audit table into memory it is highly not recommended. Keep in mind it may causes out of memory errors.
Examples:Query for all audit records for type and pk:
final AuditSearchQuery query = AuditSearchQuery.forType("MyTypeCode").withSearchRule(ItemPkSearchRule.withPk(pk)).build();Simplified version of query for all audit records for type and pk:
final AuditSearchQuery query = AuditSearchQuery.forType("MyTypeCode").withPkSearchRules(pk).build();Query for all audit records for type and several pk's (resulting search must do logical OR):
final AuditSearchQuery query = AuditSearchQuery.forType("MyTypeCode").withPkSearchRules(pk1, pk2, pk3).build();Query for all audit records for type, pk and particular attribute/value in audit payload:
final AuditSearchQuery query = AuditSearchQuery.forType("MyTypeCode") .withPkSearchRules(pk) .withSearchRule(new PayloadSearchRule("fieldInPayload", "someValue")) .build();Simplified version of query for all audit records for type, pk and particular attribute/value in audit payload:
final AuditSearchQuery query = AuditSearchQuery.forType("MyTypeCode") .withPkSearchRules(pk) .withPayloadSearchRule("fieldInPayload", "someValue") .build();
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAuditSearchQuery.LinkQueryBuilderstatic classAuditSearchQuery.QueryBuilder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AuditSearchQuery.LinkQueryBuilderforLink(Type linkType)static AuditSearchQuery.LinkQueryBuilderforLink(java.lang.String linkTypeCode)static AuditSearchQuery.QueryBuilderforType(Type type)static AuditSearchQuery.QueryBuilderforType(java.lang.String typeCode)LinkAuditRecord.LinkSidegetLinkSide()java.util.List<SearchRule>getPayloadSearchRules()java.util.List<SearchRule>getStandardSearchRules()java.lang.StringgetTypeCode()booleanhasPayloadSearchRules()booleanhasStandardSearchRules()booleanisLinkRelatedQuery()
-
-
-
Method Detail
-
getTypeCode
public java.lang.String getTypeCode()
-
getLinkSide
public LinkAuditRecord.LinkSide getLinkSide()
-
isLinkRelatedQuery
public boolean isLinkRelatedQuery()
-
getStandardSearchRules
public java.util.List<SearchRule> getStandardSearchRules()
-
getPayloadSearchRules
public java.util.List<SearchRule> getPayloadSearchRules()
-
hasStandardSearchRules
public boolean hasStandardSearchRules()
-
hasPayloadSearchRules
public boolean hasPayloadSearchRules()
-
forType
public static AuditSearchQuery.QueryBuilder forType(java.lang.String typeCode)
-
forType
public static AuditSearchQuery.QueryBuilder forType(Type type)
-
forLink
public static AuditSearchQuery.LinkQueryBuilder forLink(java.lang.String linkTypeCode)
-
forLink
public static AuditSearchQuery.LinkQueryBuilder forLink(Type linkType)
-
-