Class JpaCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
java.lang.Object
com.broadleafcommerce.datafeed.provider.jpa.repository.trackable.JpaCustomizedDataFeedPublicationRepository<D>
- Type Parameters:
- D- the persisted domain type
- All Implemented Interfaces:
- CustomizedDataFeedPublicationRepository<D>,- org.springframework.beans.factory.InitializingBean
public class JpaCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
extends Object
implements CustomizedDataFeedPublicationRepository<D>, org.springframework.beans.factory.InitializingBean
JPA implementation of 
CustomizedDataFeedPublicationRepository.- 
Constructor SummaryConstructorsConstructorDescriptionJpaCustomizedDataFeedPublicationRepository(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil behaviorUtil, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder criteriaBuilder, com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager repositoryEntityTypeManager, JpaDataFeedQueryHelper queryHelper) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidprotected DataFeedPublicationRepository<D>Lazy injection so we can access base repository methods.protected com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtilprotected com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilderprotected jakarta.persistence.EntityManagerprotected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelperprotected com.broadleafcommerce.common.messaging.notification.NotificationStateServiceLazy injection since this is technically a service component.protected JpaDataFeedQueryHelperprotected com.broadleafcommerce.common.jpa.RepositoryEntityTypeManagerprotected com.broadleafcommerce.common.messaging.notification.domain.NotificationStateinitializeAndResetNotificationState(D entity, String notificationStateName, Instant changeTimestamp) initializeNotificationState(List<String> ids, String messageType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically finds theDataFeedPublicationinstances for the givenids, and initializes theirNotificationStateformessageType.voidsetBaseRepository(DataFeedPublicationRepository<D> baseRepository) Lazy injection so we can access base repository methods.voidsetNotificationStateService(com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService) Lazy injection since this is technically a service component.setStatusAndCompletionDetails(String id, String newStatus, Instant endTime, boolean containsErrors, List<String> errorDetails, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedPublication.getStatus()and completion details on the specified publication.setStatusAndStartTime(String id, String newStatus, Instant startTime, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedPublication.getStatus()andDataFeedPublication.getStartTime()on the specified publication.
- 
Constructor Details- 
JpaCustomizedDataFeedPublicationRepositorypublic JpaCustomizedDataFeedPublicationRepository(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil behaviorUtil, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder criteriaBuilder, com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager repositoryEntityTypeManager, JpaDataFeedQueryHelper queryHelper) 
 
- 
- 
Method Details- 
afterPropertiesSet- Specified by:
- afterPropertiesSetin interface- org.springframework.beans.factory.InitializingBean
- Throws:
- Exception
 
- 
initializeNotificationState@Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public List<D> initializeNotificationState(List<String> ids, String messageType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedPublicationRepositoryAtomically finds theDataFeedPublicationinstances for the givenids, and initializes theirNotificationStateformessageType.- Specified by:
- initializeNotificationStatein interface- CustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
- Parameters:
- ids- the- DataFeedPublication.getId()ids for which to initialize the notification state. Cannot be empty.
- messageType- the message type (ex:- NotificationState.getName()
- contextInfo- context information around multitenant state
- Returns:
- the DataFeedPublicationinstances that were successfully found and updated (omitting those which were not successfully updated)
 
- 
initializeAndResetNotificationState
- 
setStatusAndStartTime@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D setStatusAndStartTime(String id, String newStatus, Instant startTime, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedPublicationRepositoryAtomically sets a newDataFeedPublication.getStatus()andDataFeedPublication.getStartTime()on the specified publication.- Specified by:
- setStatusAndStartTimein interface- CustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
- Parameters:
- id- the ID of the publication to update
- newStatus- the new value to set for- DataFeedPublication.getStatus()
- startTime- the value to set for- DataFeedPublication.getStartTime()
- whereCurrentStatus- (optional) if provided, the update will only be applied if the publication currently has this value for its- DataFeedPublication.getStatus()
- contextInfo- context information around multitenant state
- Returns:
- the updated publication if successfully updated, else null
 
- 
setStatusAndCompletionDetails@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D setStatusAndCompletionDetails(String id, String newStatus, Instant endTime, boolean containsErrors, @Nullable List<String> errorDetails, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedPublicationRepositoryAtomically sets a newDataFeedPublication.getStatus()and completion details on the specified publication.- Specified by:
- setStatusAndCompletionDetailsin interface- CustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
- Parameters:
- id- the ID of the publication to update
- newStatus- the new value to set for- DataFeedPublication.getStatus()
- endTime- the value to set for- DataFeedPublication.getEndTime()
- containsErrors- the value to set for- DataFeedPublication.isContainsErrors()
- errorDetails- (optional) the value to set for- DataFeedPublication.getErrorDetails()
- whereCurrentStatus- (optional) if provided, the update will only be applied if the publication currently has this value for its- DataFeedPublication.getStatus()
- contextInfo- context information around multitenant state
- Returns:
- the updated publication if successfully updated, else null
 
- 
getBehaviorUtilprotected com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil getBehaviorUtil()
- 
getCriteriaBuilderprotected com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder getCriteriaBuilder()
- 
getRepositoryEntityTypeManagerprotected com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager getRepositoryEntityTypeManager()
- 
getQueryHelper
- 
getEntityManagerprotected jakarta.persistence.EntityManager getEntityManager()
- 
getNarrowingHelperprotected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelper getNarrowingHelper()
- 
getBaseRepositoryLazy injection so we can access base repository methods.
- 
setBaseRepositoryLazy injection so we can access base repository methods.
- 
getNotificationStateServiceprotected com.broadleafcommerce.common.messaging.notification.NotificationStateService getNotificationStateService()Lazy injection since this is technically a service component.
- 
setNotificationStateService@Autowired @Lazy public void setNotificationStateService(com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService) Lazy injection since this is technically a service component.
 
-