Class AbstractHibernateOperations<S,​Q>

  • Type Parameters:
    S - The session type
    Q - The query type
    All Implemented Interfaces:
    HintsCapableRepository
    Direct Known Subclasses:
    HibernateJpaOperations

    @Internal
    public abstract class AbstractHibernateOperations<S,​Q>
    extends java.lang.Object
    implements HintsCapableRepository
    Abstract Hibernate operations shared between the synchronous and the reactive implementations.
    Since:
    3.5.0
    Author:
    Denis Stepaov
    • Field Detail

      • dataConversionService

        protected final io.micronaut.core.convert.ConversionService<?> dataConversionService
    • Constructor Detail

      • AbstractHibernateOperations

        protected AbstractHibernateOperations​(RuntimeEntityRegistry runtimeEntityRegistry,
                                              DataConversionService<?> dataConversionService)
        Default constructor.
        Parameters:
        runtimeEntityRegistry - The runtime entity registry
        dataConversionService - The data conversion service
    • Method Detail

      • getApplicationContext

        protected io.micronaut.context.ApplicationContext getApplicationContext()
        Returns:
        The application context
      • getConversionService

        protected io.micronaut.core.convert.ConversionService<?> getConversionService()
        Returns:
        The conversion service
      • getEntity

        @NonNull
        protected abstract <T> RuntimePersistentEntity<T> getEntity​(@NonNull
                                                                    java.lang.Class<T> type)
        Gets the persistence entity.
        Type Parameters:
        T - The entity type
        Parameters:
        type - The entity type
        Returns:
        The persistent entity
      • getQueryHints

        @NonNull
        public java.util.Map<java.lang.String,​java.lang.Object> getQueryHints​(@NonNull
                                                                                    StoredQuery<?,​?> storedQuery)
        Description copied from interface: HintsCapableRepository
        Obtain any custom query hints for this method and repository implementation.
        Specified by:
        getQueryHints in interface HintsCapableRepository
        Parameters:
        storedQuery - The stored query
        Returns:
        THe query hints
      • setParameter

        protected abstract void setParameter​(Q query,
                                             java.lang.String parameterName,
                                             java.lang.Object value)
        Sets a parameter into query.
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
      • setParameter

        protected abstract void setParameter​(Q query,
                                             java.lang.String parameterName,
                                             java.lang.Object value,
                                             io.micronaut.core.type.Argument argument)
        Sets parameter into query.
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
        argument - The argument
      • setParameterList

        protected abstract void setParameterList​(Q query,
                                                 java.lang.String parameterName,
                                                 java.util.Collection<java.lang.Object> value)
        Sets a list parameter into query.
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
      • setParameterList

        protected abstract void setParameterList​(Q query,
                                                 java.lang.String parameterName,
                                                 java.util.Collection<java.lang.Object> value,
                                                 io.micronaut.core.type.Argument argument)
        Sets a list parameter into query.
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
        argument - The argument
      • setHint

        protected abstract void setHint​(Q query,
                                        java.lang.String hintName,
                                        java.lang.Object value)
        Sets a hint.
        Parameters:
        query - The query
        hintName - The hint name
        value - The value
      • setMaxResults

        protected abstract void setMaxResults​(Q query,
                                              int max)
        Sets the max results value.
        Parameters:
        query - The query
        max - The max value
      • setOffset

        protected abstract void setOffset​(Q query,
                                          int offset)
        Sets the offset value.
        Parameters:
        query - The query
        offset - The offset value
      • getEntityGraph

        protected abstract <T> javax.persistence.EntityGraph<T> getEntityGraph​(S session,
                                                                               java.lang.Class<T> entityType,
                                                                               java.lang.String graphName)
        Gets an entity graph.
        Type Parameters:
        T - The entity type
        Parameters:
        session - The session
        entityType - The entity type
        graphName - The graph name
        Returns:
        The graph
      • createEntityGraph

        protected abstract <T> javax.persistence.EntityGraph<T> createEntityGraph​(S session,
                                                                                  java.lang.Class<T> entityType)
        Creates an entity graph.
        Type Parameters:
        T - The entityType
        Parameters:
        session - The session
        entityType - The entityType
        Returns:
        The graph
      • createQuery

        protected abstract Q createQuery​(S session,
                                         java.lang.String query,
                                         @Nullable
                                         java.lang.Class<?> resultType)
        Create a new query.
        Parameters:
        session - The session
        query - The query
        resultType - The result type
        Returns:
        new query
      • createNativeQuery

        protected abstract Q createNativeQuery​(S session,
                                               java.lang.String query,
                                               java.lang.Class<?> resultType)
        Create a new native query.
        Parameters:
        session - The session
        query - The query
        resultType - The result type
        Returns:
        new query
      • createQuery

        protected abstract Q createQuery​(S session,
                                         javax.persistence.criteria.CriteriaQuery<?> criteriaQuery)
        Create a native query.
        Parameters:
        session - The session
        criteriaQuery - The criteriaQuery
        Returns:
        new query
      • collectFindOne

        protected <R> void collectFindOne​(S session,
                                          PreparedQuery<?,​R> preparedQuery,
                                          AbstractHibernateOperations.ResultCollector<R> collector)
        Collect one result.
        Type Parameters:
        R - The result type
        Parameters:
        session - The session
        preparedQuery - The prepared query
        collector - The collector
      • collectFindAll

        protected <R> void collectFindAll​(S session,
                                          PreparedQuery<?,​R> preparedQuery,
                                          AbstractHibernateOperations.ResultCollector<R> collector)
        Collect all results.
        Type Parameters:
        R - The result type
        Parameters:
        session - The session
        preparedQuery - The prepared query
        collector - The collector
      • bindParameters

        protected <T,​R> void bindParameters​(Q q,
                                                  @NonNull
                                                  PreparedQuery<T,​R> preparedQuery,
                                                  java.lang.String query)
        Bind parameters into query.
        Type Parameters:
        T - The entity type
        R - The result type
        Parameters:
        q - The query
        preparedQuery - THe prepared query
        query - The string query
      • getParameterValue

        protected final java.lang.Object getParameterValue​(java.lang.String[] propertyPath,
                                                           java.lang.Object value)
      • getFlushModeType

        protected final javax.persistence.FlushModeType getFlushModeType​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      • collectCountOf

        protected final <R> void collectCountOf​(javax.persistence.criteria.CriteriaBuilder criteriaBuilder,
                                                S session,
                                                java.lang.Class<R> entity,
                                                @Nullable
                                                Pageable pageable,
                                                AbstractHibernateOperations.ResultCollector<java.lang.Long> resultCollector)