Class MongoNodeRepositoryImpl

java.lang.Object
org.saidone.component.BaseComponent
org.saidone.repository.MongoNodeRepositoryImpl
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.data.mongodb.repository.MongoRepository<NodeWrapper,String>, org.springframework.data.repository.CrudRepository<NodeWrapper,String>, org.springframework.data.repository.ListCrudRepository<NodeWrapper,String>, org.springframework.data.repository.ListPagingAndSortingRepository<NodeWrapper,String>, org.springframework.data.repository.PagingAndSortingRepository<NodeWrapper,String>, org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>, org.springframework.data.repository.Repository<NodeWrapper,String>
Direct Known Subclasses:
EncryptedMongoNodeRepositoryImpl

@Repository @ConditionalOnProperty(name="application.service.vault.encryption.enabled", havingValue="false", matchIfMissing=true) public class MongoNodeRepositoryImpl extends BaseComponent implements org.springframework.data.mongodb.repository.MongoRepository<NodeWrapper,String>
Repository implementation for managing NodeWrapper entities in MongoDB.

Implements the MongoRepository interface using MongoOperations to perform database operations.

Activation of this repository is controlled by the property 'application.service.vault.encryption.enabled': it is enabled when the value is "false" or the property is missing.

Offers various CRUD operations such as insertion, save, batch operations, find by example, find by sort or pageable criteria, counting, and removal of entities. Supports custom queries using Example, Sort, and Pageable.

The findBy(Example, Function) method is not implemented and will always throw an UnsupportedOperationException.

This class extends BaseComponent and is intended for scenarios where node encryption is disabled at the application level.

Depends on MongoOperations for thread-safe persistence handling of NodeWrapper documents.

  • Constructor Details

    • MongoNodeRepositoryImpl

      public MongoNodeRepositoryImpl()
  • Method Details

    • init

      @PostConstruct public void init()
      Description copied from class: BaseComponent
      Called after dependency injection is complete. Logs a startup message indicating that the component is ready.
      Overrides:
      init in class BaseComponent
    • insert

      @NonNull public <S extends NodeWrapper> S insert(@NonNull S entity)
      Specified by:
      insert in interface org.springframework.data.mongodb.repository.MongoRepository<NodeWrapper,String>
    • insert

      @NonNull public <S extends NodeWrapper> @NonNull List<S> insert(@NonNull @NonNull Iterable<S> entities)
      Specified by:
      insert in interface org.springframework.data.mongodb.repository.MongoRepository<NodeWrapper,String>
    • save

      @NonNull public <S extends NodeWrapper> S save(@NonNull S entity)
      Specified by:
      save in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • saveAll

      @NonNull public <S extends NodeWrapper> @NonNull List<S> saveAll(@NonNull @NonNull Iterable<S> entities)
      Specified by:
      saveAll in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
      Specified by:
      saveAll in interface org.springframework.data.repository.ListCrudRepository<NodeWrapper,String>
    • findOne

      @NonNull public <S extends NodeWrapper> @NonNull Optional<S> findOne(@NonNull @NonNull org.springframework.data.domain.Example<S> example)
      Specified by:
      findOne in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>
    • findAll

      @NonNull public <S extends NodeWrapper> @NonNull List<S> findAll(@NonNull @NonNull org.springframework.data.domain.Example<S> example)
      Specified by:
      findAll in interface org.springframework.data.mongodb.repository.MongoRepository<NodeWrapper,String>
      Specified by:
      findAll in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>
    • findAll

      @NonNull public <S extends NodeWrapper> @NonNull List<S> findAll(@NonNull @NonNull org.springframework.data.domain.Example<S> example, @NonNull @NonNull org.springframework.data.domain.Sort sort)
      Specified by:
      findAll in interface org.springframework.data.mongodb.repository.MongoRepository<NodeWrapper,String>
      Specified by:
      findAll in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>
    • findAll

      @NonNull public <S extends NodeWrapper> @NonNull org.springframework.data.domain.Page<S> findAll(@NonNull @NonNull org.springframework.data.domain.Example<S> example, @NonNull @NonNull org.springframework.data.domain.Pageable pageable)
      Specified by:
      findAll in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>
    • findBy

      @NonNull public <S extends NodeWrapper, R> R findBy(@NonNull @NonNull org.springframework.data.domain.Example<S> example, @NonNull @NonNull Function<org.springframework.data.repository.query.FluentQuery.FetchableFluentQuery<S>,R> queryFunction)
      Specified by:
      findBy in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>
    • findById

      @NonNull public @NonNull Optional<NodeWrapper> findById(@NonNull @NonNull String id)
      Specified by:
      findById in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • existsById

      public boolean existsById(@NonNull @NonNull String id)
      Specified by:
      existsById in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • findAll

      @NonNull public @NonNull List<NodeWrapper> findAll()
      Specified by:
      findAll in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
      Specified by:
      findAll in interface org.springframework.data.repository.ListCrudRepository<NodeWrapper,String>
    • findAllById

      @NonNull public @NonNull List<NodeWrapper> findAllById(@NonNull @NonNull Iterable<String> ids)
      Specified by:
      findAllById in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
      Specified by:
      findAllById in interface org.springframework.data.repository.ListCrudRepository<NodeWrapper,String>
    • count

      public long count()
      Specified by:
      count in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • deleteById

      public void deleteById(@NonNull @NonNull String id)
      Specified by:
      deleteById in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • delete

      public void delete(@NonNull @NonNull NodeWrapper entity)
      Specified by:
      delete in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • deleteAllById

      public void deleteAllById(@NonNull @NonNull Iterable<? extends String> ids)
      Specified by:
      deleteAllById in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • deleteAll

      public void deleteAll(@NonNull @NonNull Iterable<? extends NodeWrapper> entities)
      Specified by:
      deleteAll in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • deleteAll

      public void deleteAll()
      Specified by:
      deleteAll in interface org.springframework.data.repository.CrudRepository<NodeWrapper,String>
    • findAll

      @NonNull public @NonNull List<NodeWrapper> findAll(@NonNull @NonNull org.springframework.data.domain.Sort sort)
      Specified by:
      findAll in interface org.springframework.data.repository.ListPagingAndSortingRepository<NodeWrapper,String>
      Specified by:
      findAll in interface org.springframework.data.repository.PagingAndSortingRepository<NodeWrapper,String>
    • findAll

      @NonNull public @NonNull org.springframework.data.domain.Page<NodeWrapper> findAll(@NonNull @NonNull org.springframework.data.domain.Pageable pageable)
      Specified by:
      findAll in interface org.springframework.data.repository.PagingAndSortingRepository<NodeWrapper,String>
    • count

      public <S extends NodeWrapper> long count(@NonNull @NonNull org.springframework.data.domain.Example<S> example)
      Specified by:
      count in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>
    • exists

      public <S extends NodeWrapper> boolean exists(@NonNull @NonNull org.springframework.data.domain.Example<S> example)
      Specified by:
      exists in interface org.springframework.data.repository.query.QueryByExampleExecutor<NodeWrapper>