Class HibernateJpaOperations

  • All Implemented Interfaces:
    io.micronaut.context.ApplicationContextProvider, JpaRepositoryOperations, io.micronaut.data.operations.async.AsyncCapableRepository, io.micronaut.data.operations.HintsCapableRepository, io.micronaut.data.operations.PrimaryRepositoryOperations, io.micronaut.data.operations.reactive.ReactiveCapableRepository, io.micronaut.data.operations.RepositoryOperations, io.micronaut.data.runtime.query.PreparedQueryDecorator, io.micronaut.data.runtime.query.StoredQueryDecorator

    @EachBean(javax.sql.DataSource.class)
    public class HibernateJpaOperations
    extends AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
    implements JpaRepositoryOperations, io.micronaut.data.operations.async.AsyncCapableRepository, io.micronaut.data.operations.reactive.ReactiveCapableRepository
    Implementation of the JpaRepositoryOperations interface for Hibernate.
    Since:
    1.0
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected HibernateJpaOperations​(org.hibernate.SessionFactory sessionFactory, io.micronaut.transaction.TransactionOperations<java.sql.Connection> transactionOperations, java.util.concurrent.ExecutorService executorService, io.micronaut.data.model.runtime.RuntimeEntityRegistry runtimeEntityRegistry)
      Deprecated.
        HibernateJpaOperations​(org.hibernate.SessionFactory sessionFactory, io.micronaut.transaction.TransactionOperations<java.sql.Connection> transactionOperations, java.util.concurrent.ExecutorService executorService, io.micronaut.data.model.runtime.RuntimeEntityRegistry runtimeEntityRegistry, io.micronaut.data.runtime.convert.DataConversionService<?> dataConversionService)
      Default constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      io.micronaut.data.runtime.operations.ExecutorAsyncOperations async()  
      <T> long count​(io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)  
      protected <T> org.hibernate.graph.RootGraph<T> createEntityGraph​(org.hibernate.Session session, java.lang.Class<T> entityType)
      Creates an entity graph.
      protected org.hibernate.query.Query<?> createNativeQuery​(org.hibernate.Session session, java.lang.String query, java.lang.Class<?> resultType)
      Create a new native query.
      protected org.hibernate.query.Query<?> createQuery​(org.hibernate.Session session, java.lang.String query, java.lang.Class<?> resultType)
      Create a new query.
      protected org.hibernate.query.Query<?> createQuery​(org.hibernate.Session session, javax.persistence.criteria.CriteriaQuery<?> criteriaQuery)
      Create a native query.
      <T> int delete​(io.micronaut.data.model.runtime.DeleteOperation<T> operation)  
      <T> java.util.Optional<java.lang.Number> deleteAll​(io.micronaut.data.model.runtime.DeleteBatchOperation<T> operation)  
      java.util.Optional<java.lang.Number> executeUpdate​(io.micronaut.data.model.runtime.PreparedQuery<?,​java.lang.Number> preparedQuery)  
      <T> boolean exists​(io.micronaut.data.model.runtime.PreparedQuery<T,​java.lang.Boolean> preparedQuery)  
      <T> java.lang.Iterable<T> findAll​(io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)  
      <T,​R>
      java.lang.Iterable<R>
      findAll​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)  
      <T,​R>
      R
      findOne​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)  
      <T> T findOne​(java.lang.Class<T> type, java.io.Serializable id)  
      <R> io.micronaut.data.model.Page<R> findPage​(io.micronaut.data.model.runtime.PagedQuery<R> pagedQuery)  
      <T> java.util.stream.Stream<T> findStream​(io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)  
      <T,​R>
      java.util.stream.Stream<R>
      findStream​(io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)  
      void flush()
      Flush the current session.
      io.micronaut.context.ApplicationContext getApplicationContext()  
      io.micronaut.core.convert.ConversionService<?> getConversionService()  
      javax.persistence.EntityManager getCurrentEntityManager()  
      <T> io.micronaut.data.model.runtime.RuntimePersistentEntity<T> getEntity​(java.lang.Class<T> type)
      Gets the persistence entity.
      protected <T> org.hibernate.graph.RootGraph<T> getEntityGraph​(org.hibernate.Session session, java.lang.Class<T> entityType, java.lang.String graphName)
      Gets an entity graph.
      javax.persistence.EntityManagerFactory getEntityManagerFactory()  
      java.util.Map<java.lang.String,​java.lang.Object> getQueryHints​(io.micronaut.data.model.runtime.StoredQuery<?,​?> storedQuery)  
      <T> T load​(java.lang.Class<T> type, java.io.Serializable id)
      Create an uninitialized proxy.
      <T> T persist​(io.micronaut.data.model.runtime.InsertOperation<T> operation)  
      <T> java.lang.Iterable<T> persistAll​(io.micronaut.data.model.runtime.InsertBatchOperation<T> operation)  
      io.micronaut.data.operations.reactive.ReactiveRepositoryOperations reactive()  
      protected void setHint​(org.hibernate.query.Query<?> query, java.lang.String hintName, java.lang.Object value)
      Sets a hint.
      protected void setMaxResults​(org.hibernate.query.Query<?> query, int max)
      Sets the max results value.
      protected void setOffset​(org.hibernate.query.Query<?> query, int offset)
      Sets the offset value.
      protected void setParameter​(org.hibernate.query.Query<?> query, java.lang.String parameterName, java.lang.Object value)
      Sets a parameter into query.
      protected void setParameter​(org.hibernate.query.Query<?> query, java.lang.String parameterName, java.lang.Object value, io.micronaut.core.type.Argument argument)
      Sets parameter into query.
      protected void setParameterList​(org.hibernate.query.Query<?> query, java.lang.String parameterName, java.util.Collection<java.lang.Object> value)
      Sets a list parameter into query.
      protected void setParameterList​(org.hibernate.query.Query<?> query, java.lang.String parameterName, java.util.Collection<java.lang.Object> value, io.micronaut.core.type.Argument argument)
      Sets a list parameter into query.
      <T> T update​(io.micronaut.data.model.runtime.UpdateOperation<T> operation)  
      <T> java.lang.Iterable<T> updateAll​(io.micronaut.data.model.runtime.UpdateBatchOperation<T> operation)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface io.micronaut.data.operations.RepositoryOperations

        executeDelete
    • Constructor Detail

      • HibernateJpaOperations

        @Deprecated
        protected HibernateJpaOperations​(@NonNull
                                         org.hibernate.SessionFactory sessionFactory,
                                         @NonNull @Parameter
                                         io.micronaut.transaction.TransactionOperations<java.sql.Connection> transactionOperations,
                                         @Named("io") @Nullable
                                         java.util.concurrent.ExecutorService executorService,
                                         io.micronaut.data.model.runtime.RuntimeEntityRegistry runtimeEntityRegistry)
        Deprecated.
        Default constructor.
        Parameters:
        sessionFactory - The session factory
        transactionOperations - The transaction operations
        executorService - The executor service for I/O tasks to use
        runtimeEntityRegistry - The runtime entity registry
      • HibernateJpaOperations

        @Creator
        public HibernateJpaOperations​(@NonNull @Parameter
                                      org.hibernate.SessionFactory sessionFactory,
                                      @NonNull @Parameter
                                      io.micronaut.transaction.TransactionOperations<java.sql.Connection> transactionOperations,
                                      @Named("io") @Nullable
                                      java.util.concurrent.ExecutorService executorService,
                                      io.micronaut.data.model.runtime.RuntimeEntityRegistry runtimeEntityRegistry,
                                      io.micronaut.data.runtime.convert.DataConversionService<?> dataConversionService)
        Default constructor.
        Parameters:
        sessionFactory - The session factory
        transactionOperations - The transaction operations
        executorService - The executor service for I/O tasks to use
        runtimeEntityRegistry - The runtime entity registry
        dataConversionService - The data conversion service
    • Method Detail

      • getEntity

        public <T> io.micronaut.data.model.runtime.RuntimePersistentEntity<T> getEntity​(java.lang.Class<T> type)
        Description copied from class: AbstractHibernateOperations
        Gets the persistence entity.
        Specified by:
        getEntity in interface io.micronaut.data.operations.RepositoryOperations
        Specified by:
        getEntity in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Type Parameters:
        T - The entity type
        Parameters:
        type - The entity type
        Returns:
        The persistent entity
      • getApplicationContext

        public io.micronaut.context.ApplicationContext getApplicationContext()
        Specified by:
        getApplicationContext in interface io.micronaut.context.ApplicationContextProvider
        Overrides:
        getApplicationContext in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Returns:
        The application context
      • getConversionService

        public io.micronaut.core.convert.ConversionService<?> getConversionService()
        Specified by:
        getConversionService in interface io.micronaut.data.operations.RepositoryOperations
        Overrides:
        getConversionService in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Returns:
        The conversion service
      • setParameter

        protected void setParameter​(org.hibernate.query.Query<?> query,
                                    java.lang.String parameterName,
                                    java.lang.Object value)
        Description copied from class: AbstractHibernateOperations
        Sets a parameter into query.
        Specified by:
        setParameter in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
      • setParameter

        protected void setParameter​(org.hibernate.query.Query<?> query,
                                    java.lang.String parameterName,
                                    java.lang.Object value,
                                    io.micronaut.core.type.Argument argument)
        Description copied from class: AbstractHibernateOperations
        Sets parameter into query.
        Specified by:
        setParameter in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
        argument - The argument
      • setParameterList

        protected void setParameterList​(org.hibernate.query.Query<?> query,
                                        java.lang.String parameterName,
                                        java.util.Collection<java.lang.Object> value)
        Description copied from class: AbstractHibernateOperations
        Sets a list parameter into query.
        Specified by:
        setParameterList in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
      • setParameterList

        protected void setParameterList​(org.hibernate.query.Query<?> query,
                                        java.lang.String parameterName,
                                        java.util.Collection<java.lang.Object> value,
                                        io.micronaut.core.type.Argument argument)
        Description copied from class: AbstractHibernateOperations
        Sets a list parameter into query.
        Specified by:
        setParameterList in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        parameterName - The parameter name
        value - The value
        argument - The argument
      • setHint

        protected void setHint​(org.hibernate.query.Query<?> query,
                               java.lang.String hintName,
                               java.lang.Object value)
        Description copied from class: AbstractHibernateOperations
        Sets a hint.
        Specified by:
        setHint in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        hintName - The hint name
        value - The value
      • getEntityGraph

        protected <T> org.hibernate.graph.RootGraph<T> getEntityGraph​(org.hibernate.Session session,
                                                                      java.lang.Class<T> entityType,
                                                                      java.lang.String graphName)
        Description copied from class: AbstractHibernateOperations
        Gets an entity graph.
        Specified by:
        getEntityGraph in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Type Parameters:
        T - The entity type
        Parameters:
        session - The session
        entityType - The entity type
        graphName - The graph name
        Returns:
        The graph
      • createEntityGraph

        protected <T> org.hibernate.graph.RootGraph<T> createEntityGraph​(org.hibernate.Session session,
                                                                         java.lang.Class<T> entityType)
        Description copied from class: AbstractHibernateOperations
        Creates an entity graph.
        Specified by:
        createEntityGraph in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Type Parameters:
        T - The entityType
        Parameters:
        session - The session
        entityType - The entityType
        Returns:
        The graph
      • createQuery

        protected org.hibernate.query.Query<?> createQuery​(org.hibernate.Session session,
                                                           java.lang.String query,
                                                           java.lang.Class<?> resultType)
        Description copied from class: AbstractHibernateOperations
        Create a new query.
        Specified by:
        createQuery in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        session - The session
        query - The query
        resultType - The result type
        Returns:
        new query
      • createNativeQuery

        protected org.hibernate.query.Query<?> createNativeQuery​(org.hibernate.Session session,
                                                                 java.lang.String query,
                                                                 java.lang.Class<?> resultType)
        Description copied from class: AbstractHibernateOperations
        Create a new native query.
        Specified by:
        createNativeQuery in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        session - The session
        query - The query
        resultType - The result type
        Returns:
        new query
      • createQuery

        protected org.hibernate.query.Query<?> createQuery​(org.hibernate.Session session,
                                                           javax.persistence.criteria.CriteriaQuery<?> criteriaQuery)
        Description copied from class: AbstractHibernateOperations
        Create a native query.
        Specified by:
        createQuery in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        session - The session
        criteriaQuery - The criteriaQuery
        Returns:
        new query
      • setOffset

        protected void setOffset​(org.hibernate.query.Query<?> query,
                                 int offset)
        Description copied from class: AbstractHibernateOperations
        Sets the offset value.
        Specified by:
        setOffset in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        offset - The offset value
      • setMaxResults

        protected void setMaxResults​(org.hibernate.query.Query<?> query,
                                     int max)
        Description copied from class: AbstractHibernateOperations
        Sets the max results value.
        Specified by:
        setMaxResults in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
        Parameters:
        query - The query
        max - The max value
      • getQueryHints

        @NonNull
        public java.util.Map<java.lang.String,​java.lang.Object> getQueryHints​(@NonNull
                                                                                    io.micronaut.data.model.runtime.StoredQuery<?,​?> storedQuery)
        Specified by:
        getQueryHints in interface io.micronaut.data.operations.HintsCapableRepository
        Overrides:
        getQueryHints in class AbstractHibernateOperations<org.hibernate.Session,​org.hibernate.query.Query<?>>
      • findOne

        @Nullable
        public <T> T findOne​(@NonNull
                             java.lang.Class<T> type,
                             @NonNull
                             java.io.Serializable id)
        Specified by:
        findOne in interface io.micronaut.data.operations.RepositoryOperations
      • load

        @NonNull
        public <T> T load​(@NonNull
                          java.lang.Class<T> type,
                          @NonNull
                          java.io.Serializable id)
        Description copied from interface: JpaRepositoryOperations
        Create an uninitialized proxy.
        Specified by:
        load in interface JpaRepositoryOperations
        Type Parameters:
        T - the entity type
        Parameters:
        type - the entity type
        id - the entity id
        Returns:
        an uninitialized proxy
      • findOne

        @Nullable
        public <T,​R> R findOne​(@NonNull
                                     io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)
        Specified by:
        findOne in interface io.micronaut.data.operations.RepositoryOperations
      • exists

        public <T> boolean exists​(@NonNull
                                  io.micronaut.data.model.runtime.PreparedQuery<T,​java.lang.Boolean> preparedQuery)
        Specified by:
        exists in interface io.micronaut.data.operations.RepositoryOperations
      • findAll

        @NonNull
        public <T> java.lang.Iterable<T> findAll​(@NonNull
                                                 io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)
        Specified by:
        findAll in interface io.micronaut.data.operations.RepositoryOperations
      • findStream

        @NonNull
        public <T> java.util.stream.Stream<T> findStream​(@NonNull
                                                         io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)
        Specified by:
        findStream in interface io.micronaut.data.operations.RepositoryOperations
      • findPage

        public <R> io.micronaut.data.model.Page<R> findPage​(@NonNull
                                                            io.micronaut.data.model.runtime.PagedQuery<R> pagedQuery)
        Specified by:
        findPage in interface io.micronaut.data.operations.RepositoryOperations
      • count

        public <T> long count​(io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)
        Specified by:
        count in interface io.micronaut.data.operations.RepositoryOperations
      • findAll

        @NonNull
        public <T,​R> java.lang.Iterable<R> findAll​(@NonNull
                                                         io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)
        Specified by:
        findAll in interface io.micronaut.data.operations.RepositoryOperations
      • persist

        public <T> T persist​(@NonNull
                             io.micronaut.data.model.runtime.InsertOperation<T> operation)
        Specified by:
        persist in interface io.micronaut.data.operations.RepositoryOperations
      • update

        @NonNull
        public <T> T update​(@NonNull
                            io.micronaut.data.model.runtime.UpdateOperation<T> operation)
        Specified by:
        update in interface io.micronaut.data.operations.RepositoryOperations
      • updateAll

        @NonNull
        public <T> java.lang.Iterable<T> updateAll​(@NonNull
                                                   io.micronaut.data.model.runtime.UpdateBatchOperation<T> operation)
        Specified by:
        updateAll in interface io.micronaut.data.operations.RepositoryOperations
      • persistAll

        @NonNull
        public <T> java.lang.Iterable<T> persistAll​(@NonNull
                                                    io.micronaut.data.model.runtime.InsertBatchOperation<T> operation)
        Specified by:
        persistAll in interface io.micronaut.data.operations.RepositoryOperations
      • executeUpdate

        @NonNull
        public java.util.Optional<java.lang.Number> executeUpdate​(@NonNull
                                                                  io.micronaut.data.model.runtime.PreparedQuery<?,​java.lang.Number> preparedQuery)
        Specified by:
        executeUpdate in interface io.micronaut.data.operations.RepositoryOperations
      • delete

        public <T> int delete​(@NonNull
                              io.micronaut.data.model.runtime.DeleteOperation<T> operation)
        Specified by:
        delete in interface io.micronaut.data.operations.RepositoryOperations
      • deleteAll

        public <T> java.util.Optional<java.lang.Number> deleteAll​(@NonNull
                                                                  io.micronaut.data.model.runtime.DeleteBatchOperation<T> operation)
        Specified by:
        deleteAll in interface io.micronaut.data.operations.RepositoryOperations
      • findStream

        @NonNull
        public <T,​R> java.util.stream.Stream<R> findStream​(@NonNull
                                                                 io.micronaut.data.model.runtime.PreparedQuery<T,​R> preparedQuery)
        Specified by:
        findStream in interface io.micronaut.data.operations.RepositoryOperations
      • async

        @NonNull
        public io.micronaut.data.runtime.operations.ExecutorAsyncOperations async()
        Specified by:
        async in interface io.micronaut.data.operations.async.AsyncCapableRepository
      • reactive

        @NonNull
        public io.micronaut.data.operations.reactive.ReactiveRepositoryOperations reactive()
        Specified by:
        reactive in interface io.micronaut.data.operations.reactive.ReactiveCapableRepository