Interface Database


  • public interface Database
    Manages interactions with the database.
    • Method Detail

      • configure

        void configure()
        Initializes the database.
      • findByID

        <T,​K extends Serializable> reactor.core.publisher.Mono<T> findByID​(Class<T> entityClass,
                                                                                 K key)
        Allows to find a database entity by its ID.
        Type Parameters:
        T - The entity type
        K - the ID type
        Parameters:
        entityClass - class of the entity
        key - the ID
        Returns:
        a Mono emitting the entity, if found
      • findByIDOrCreate

        <T,​K extends Serializable> reactor.core.publisher.Mono<T> findByIDOrCreate​(Class<T> entityClass,
                                                                                         K key,
                                                                                         java.util.function.BiConsumer<? super T,​K> keySetter)
        Allows to find a database entity by its ID. If not found, a new entity is created
        Type Parameters:
        T - The entity type
        K - the ID type
        Parameters:
        entityClass - class of the entity
        key - the ID
        keySetter - the biconsumer that assigns the ID to the newly created entity
        Returns:
        a Mono emitting the entity, if found
      • query

        <T> reactor.core.publisher.Flux<T> query​(Class<T> entityClass,
                                                 String query,
                                                 Object... params)
        Makes a simple query to the database.
        Type Parameters:
        T - the entity type
        Parameters:
        entityClass - the entity type to fetch
        query - the HQL query
        params - the query params
        Returns:
        a Flux emitting the results of the query
      • save

        reactor.core.publisher.Mono<Void> save​(Object obj)
        Saves an object in database
        Parameters:
        obj - the object to save
        Returns:
        a Mono that completes when it has saved
      • delete

        reactor.core.publisher.Mono<Void> delete​(Object obj)
        Deletes an object from database
        Parameters:
        obj - the object to save
        Returns:
        a Mono that completes when it has deleted