Class JpaCustomizedUserRepository<D extends JpaUser>

    • Constructor Detail

      • JpaCustomizedUserRepository

        public JpaCustomizedUserRepository()
    • Method Detail

      • setRepository

        @Autowired
        public void setRepository​(UserRepository<D> repository)
      • getDomainType

        public Class<D> getDomainType()
        Specified by:
        getDomainType in interface com.broadleafcommerce.common.extension.DomainTypeAware
      • replaceOnlyIfLastUpdatedBefore

        @Nullable
        @Transactional
        public D replaceOnlyIfLastUpdatedBefore​(@NonNull
                                                @NonNull String entityId,
                                                @NonNull
                                                D user,
                                                @NonNull
                                                @NonNull Instant lastUpdated)
        Description copied from interface: CustomizedUserRepository
        A specialized replace operation that does not invoke the "save" create-or-update behavior. This operation should directly attempt an atomic update that the data store will reject if the entity is not found or has a lastUpdated ahead of the current change.

        This is intended to be used in concurrent scenarios where only one operation should succeed.

        Note that this update should succeed even if the existing record is User.archived.

        Note that this method should also set the provided User.archived value, even if it is true.

        Specified by:
        replaceOnlyIfLastUpdatedBefore in interface CustomizedUserRepository<D extends JpaUser>
        Parameters:
        entityId - the id of the entity to replace
        user - the replacement entity
        lastUpdated - the timestamp of the current change. This will be compared to the lastUpdated on the existing entity for determination of whether the replacement should occur. Furthermore, the replacement will have its User.lastUpdated set to this value.
        Returns:
        the user after replacement if successfully replaced, or null if the entity was not found or could not be updated due to its lastUpdated value.
      • buildIdFilter

        protected javax.persistence.criteria.Predicate buildIdFilter​(String entityId,
                                                                     javax.persistence.criteria.Root<D> userEntity,
                                                                     javax.persistence.criteria.CriteriaBuilder criteriaBuilder,
                                                                     Map<String,​Object> parameterValues)