Class JpaAlternateLifecycleOfferAuditSummaryRepository<D extends JpaOfferAuditSummary>

java.lang.Object
com.broadleafcommerce.promotion.offer.provider.jpa.repository.JpaAlternateLifecycleOfferAuditSummaryRepository<D>
All Implemented Interfaces:
AlternateLifecycleOfferAuditSummaryRepository<D>

public class JpaAlternateLifecycleOfferAuditSummaryRepository<D extends JpaOfferAuditSummary> extends Object implements AlternateLifecycleOfferAuditSummaryRepository<D>
  • Constructor Details

    • JpaAlternateLifecycleOfferAuditSummaryRepository

      public JpaAlternateLifecycleOfferAuditSummaryRepository(org.springframework.transaction.support.TransactionTemplate template, org.springframework.core.env.Environment environment)
  • Method Details

    • findAllByOfferIdIn

      public List<D> findAllByOfferIdIn(@NonNull Set<String> offerIds, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Override the default spring handling for the query method.

      Possible that multiple instances for the same offer exist (e.g. in active/active datacenter scenarios with replication). If detected, collapse the results returned under a single summary per offer that matches the current context.
      Parameters:
      offerIds - The offers associated with the target summaries
      contextInfo - The tenant information for the request context
      Returns:
      Any collapsed summaries associated with the offer codes
    • findByOfferId

      @Nullable public D findByOfferId(@NonNull String offerId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Override the default spring handling for the query method.

      Possible that multiple instances for the same offer exist (e.g. in active/active datacenter scenarios with replication). If detected, collapse the results returned under a single summary that matches the current context.
      Parameters:
      offerId - The offer associated with the target summary
      contextInfo - The tenant information for the request context
      Returns:
      Any collapsed summaries associated with the offer codes
    • createOrUpdateAndIncrement

      public D createOrUpdateAndIncrement(String offerId, @Nullable javax.money.MonetaryAmount totalSavings, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: AlternateLifecycleOfferAuditSummaryRepository
      Create an instance of OfferAuditSummary, or atomically update an existing one. This flow also will not end up creating duplicate summaries for the same offer.
      Specified by:
      createOrUpdateAndIncrement in interface AlternateLifecycleOfferAuditSummaryRepository<D extends JpaOfferAuditSummary>
      Parameters:
      offerId - The id of the related offer
      totalSavings - The total savings applied to record for this offer
      contextInfo - Any tenant related information for the request context
      Returns:
      The created or updated summary
    • handleConstraintViolation

      protected void handleConstraintViolation(@Nullable javax.money.MonetaryAmount totalSavings, org.springframework.transaction.TransactionStatus status, String id)
    • getEntityClass

      @Deprecated(forRemoval=true, since="3.0.3, 3.1.0") @NotNull protected @NotNull Class<D> getEntityClass()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Method had a hardcoded entity reference that prevents from accepting extended entities, use getManagedType() instead.
    • getManagedType

      protected Class<D> getManagedType()
    • narrowResult

      @Nullable protected D narrowResult(String offerId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, List<D> results)
    • setRepositoryEntityTypeManager

      @Autowired @Lazy public void setRepositoryEntityTypeManager(com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager repositoryEntityTypeManager)
    • getRepositoryEntityTypeManager

      protected com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager getRepositoryEntityTypeManager()
    • setRepository

      @Autowired @Lazy public void setRepository(JpaOfferAuditSummaryRepository<D> repository)
    • getRepository

      protected JpaOfferAuditSummaryRepository<D> getRepository()
    • getJpaPromotionQueryHelper

      protected JpaPromotionQueryHelper getJpaPromotionQueryHelper()
    • setJpaPromotionQueryHelper

      @Autowired public void setJpaPromotionQueryHelper(JpaPromotionQueryHelper jpaPromotionQueryHelper)