Class HibernateJpaOperations
- java.lang.Object
-
- io.micronaut.data.hibernate.operations.AbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
-
- io.micronaut.data.hibernate.operations.HibernateJpaOperations
-
- All Implemented Interfaces:
io.micronaut.context.ApplicationContextProvider
,JpaRepositoryOperations
,AsyncCapableRepository
,HintsCapableRepository
,PrimaryRepositoryOperations
,ReactiveCapableRepository
,RepositoryOperations
,PreparedQueryDecorator
,StoredQueryDecorator
@EachBean(javax.sql.DataSource.class) public class HibernateJpaOperations extends AbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>> implements JpaRepositoryOperations, AsyncCapableRepository, ReactiveCapableRepository
Implementation of theJpaRepositoryOperations
interface for Hibernate.- Since:
- 1.0
- Author:
- graemerocher
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.micronaut.data.hibernate.operations.AbstractHibernateOperations
AbstractHibernateOperations.ResultCollector<R>
-
-
Field Summary
-
Fields inherited from class io.micronaut.data.hibernate.operations.AbstractHibernateOperations
dataConversionService, runtimeEntityRegistry
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
HibernateJpaOperations(org.hibernate.SessionFactory sessionFactory, TransactionOperations<java.sql.Connection> transactionOperations, java.util.concurrent.ExecutorService executorService, RuntimeEntityRegistry runtimeEntityRegistry)
Deprecated.HibernateJpaOperations(org.hibernate.SessionFactory sessionFactory, TransactionOperations<java.sql.Connection> transactionOperations, java.util.concurrent.ExecutorService executorService, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService<?> dataConversionService)
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ExecutorAsyncOperations
async()
<T> long
count(PagedQuery<T> pagedQuery)
Counts all results for the given query.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(DeleteOperation<T> operation)
Deletes the entity.<T> java.util.Optional<java.lang.Number>
deleteAll(DeleteBatchOperation<T> operation)
Deletes all the entities of the given type.java.util.Optional<java.lang.Number>
executeUpdate(PreparedQuery<?,java.lang.Number> preparedQuery)
Executes an update for the given query and parameter values.<T> boolean
exists(PreparedQuery<T,java.lang.Boolean> preparedQuery)
Execute a query that checks for existence.<T> java.lang.Iterable<T>
findAll(PagedQuery<T> pagedQuery)
Finds all results for the given query.<T,R>
java.lang.Iterable<R>findAll(PreparedQuery<T,R> preparedQuery)
Finds all results for the given query.<T,R>
RfindOne(PreparedQuery<T,R> preparedQuery)
Find one by Query.<T> T
findOne(java.lang.Class<T> type, java.io.Serializable id)
Find one by ID.<R> Page<R>
findPage(PagedQuery<R> pagedQuery)
Find a page for the given entity and pageable.<T> java.util.stream.Stream<T>
findStream(PagedQuery<T> pagedQuery)
Finds a stream for the given arguments.<T,R>
java.util.stream.Stream<R>findStream(PreparedQuery<T,R> preparedQuery)
Finds all results for the given query.void
flush()
Flush the current session.io.micronaut.context.ApplicationContext
getApplicationContext()
io.micronaut.core.convert.ConversionService<?>
getConversionService()
Get conversion service.javax.persistence.EntityManager
getCurrentEntityManager()
<T> 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(StoredQuery<?,?> storedQuery)
Obtain any custom query hints for this method and repository implementation.<T> T
load(java.lang.Class<T> type, java.io.Serializable id)
Create an uninitialized proxy.<T> T
persist(InsertOperation<T> operation)
Persist the operation returning a possibly new entity.<T> java.lang.Iterable<T>
persistAll(InsertBatchOperation<T> operation)
Persist all the given entities.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(UpdateOperation<T> operation)
Updates the entity for the given operation.<T> java.lang.Iterable<T>
updateAll(UpdateBatchOperation<T> operation)
Updates the entities for the given operation.-
Methods inherited from class io.micronaut.data.hibernate.operations.AbstractHibernateOperations
bindParameters, collectCountOf, collectFindAll, collectFindOne, collectPagedResults, decorate, decorate, getFlushModeType, getParameterValue
-
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 TransactionOperations<java.sql.Connection> transactionOperations, @Named("io") @Nullable java.util.concurrent.ExecutorService executorService, RuntimeEntityRegistry runtimeEntityRegistry)
Deprecated.Default constructor.- Parameters:
sessionFactory
- The session factorytransactionOperations
- The transaction operationsexecutorService
- The executor service for I/O tasks to useruntimeEntityRegistry
- The runtime entity registry
-
HibernateJpaOperations
@Creator public HibernateJpaOperations(@NonNull @Parameter org.hibernate.SessionFactory sessionFactory, @NonNull @Parameter TransactionOperations<java.sql.Connection> transactionOperations, @Named("io") @Nullable java.util.concurrent.ExecutorService executorService, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService<?> dataConversionService)
Default constructor.- Parameters:
sessionFactory
- The session factorytransactionOperations
- The transaction operationsexecutorService
- The executor service for I/O tasks to useruntimeEntityRegistry
- The runtime entity registrydataConversionService
- The data conversion service
-
-
Method Detail
-
getEntity
public <T> RuntimePersistentEntity<T> getEntity(java.lang.Class<T> type)
Description copied from class:AbstractHibernateOperations
Gets the persistence entity.- Specified by:
getEntity
in interfaceRepositoryOperations
- Specified by:
getEntity
in classAbstractHibernateOperations<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 interfaceio.micronaut.context.ApplicationContextProvider
- Overrides:
getApplicationContext
in classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Returns:
- The application context
-
getConversionService
public io.micronaut.core.convert.ConversionService<?> getConversionService()
Description copied from interface:RepositoryOperations
Get conversion service.- Specified by:
getConversionService
in interfaceRepositoryOperations
- Overrides:
getConversionService
in classAbstractHibernateOperations<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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The queryparameterName
- The parameter namevalue
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The queryparameterName
- The parameter namevalue
- The valueargument
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The queryparameterName
- The parameter namevalue
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The queryparameterName
- The parameter namevalue
- The valueargument
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The queryhintName
- The hint namevalue
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Type Parameters:
T
- The entity type- Parameters:
session
- The sessionentityType
- The entity typegraphName
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Type Parameters:
T
- The entityType- Parameters:
session
- The sessionentityType
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
session
- The sessionquery
- The queryresultType
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
session
- The sessionquery
- The queryresultType
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
session
- The sessioncriteriaQuery
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The queryoffset
- 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 classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
query
- The querymax
- The max value
-
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 interfaceHintsCapableRepository
- Overrides:
getQueryHints
in classAbstractHibernateOperations<org.hibernate.Session,org.hibernate.query.Query<?>>
- Parameters:
storedQuery
- The stored query- Returns:
- THe query hints
-
findOne
@Nullable public <T> T findOne(@NonNull java.lang.Class<T> type, @NonNull java.io.Serializable id)
Description copied from interface:RepositoryOperations
Find one by ID.- Specified by:
findOne
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
type
- The typeid
- The id- Returns:
- A result or null
-
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 interfaceJpaRepositoryOperations
- Type Parameters:
T
- the entity type- Parameters:
type
- the entity typeid
- the entity id- Returns:
- an uninitialized proxy
-
findOne
@Nullable public <T,R> R findOne(@NonNull PreparedQuery<T,R> preparedQuery)
Description copied from interface:RepositoryOperations
Find one by Query.- Specified by:
findOne
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic resultTypeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- A result or null
-
exists
public <T> boolean exists(@NonNull PreparedQuery<T,java.lang.Boolean> preparedQuery)
Description copied from interface:RepositoryOperations
Execute a query that checks for existence.- Specified by:
exists
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic resultType- Parameters:
preparedQuery
- The prepared query- Returns:
- A result or null
-
findAll
@NonNull public <T> java.lang.Iterable<T> findAll(@NonNull PagedQuery<T> pagedQuery)
Description copied from interface:RepositoryOperations
Finds all results for the given query.- Specified by:
findAll
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The root entity- Returns:
- An iterable result
-
findStream
@NonNull public <T> java.util.stream.Stream<T> findStream(@NonNull PagedQuery<T> pagedQuery)
Description copied from interface:RepositoryOperations
Finds a stream for the given arguments.- Specified by:
findStream
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The query- Returns:
- The stream
-
findPage
public <R> Page<R> findPage(@NonNull PagedQuery<R> pagedQuery)
Description copied from interface:RepositoryOperations
Find a page for the given entity and pageable.- Specified by:
findPage
in interfaceRepositoryOperations
- Type Parameters:
R
- The entity generic type- Parameters:
pagedQuery
- The query- Returns:
- The page type
-
count
public <T> long count(PagedQuery<T> pagedQuery)
Description copied from interface:RepositoryOperations
Counts all results for the given query.- Specified by:
count
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The paged query- Returns:
- An iterable result
-
findAll
@NonNull public <T,R> java.lang.Iterable<R> findAll(@NonNull PreparedQuery<T,R> preparedQuery)
Description copied from interface:RepositoryOperations
Finds all results for the given query.- Specified by:
findAll
in interfaceRepositoryOperations
- Type Parameters:
T
- The entity typeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- An iterable result
-
persist
public <T> T persist(@NonNull InsertOperation<T> operation)
Description copied from interface:RepositoryOperations
Persist the operation returning a possibly new entity.- Specified by:
persist
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The operation
-
update
@NonNull public <T> T update(@NonNull UpdateOperation<T> operation)
Description copied from interface:RepositoryOperations
Updates the entity for the given operation.- Specified by:
update
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The operation
-
updateAll
@NonNull public <T> java.lang.Iterable<T> updateAll(@NonNull UpdateBatchOperation<T> operation)
Description copied from interface:RepositoryOperations
Updates the entities for the given operation.- Specified by:
updateAll
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The updated entities
-
persistAll
@NonNull public <T> java.lang.Iterable<T> persistAll(@NonNull InsertBatchOperation<T> operation)
Description copied from interface:RepositoryOperations
Persist all the given entities.- Specified by:
persistAll
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The entities, possibly mutated
-
executeUpdate
@NonNull public java.util.Optional<java.lang.Number> executeUpdate(@NonNull PreparedQuery<?,java.lang.Number> preparedQuery)
Description copied from interface:RepositoryOperations
Executes an update for the given query and parameter values. If it is possible to return the number of objects updated, then do so.- Specified by:
executeUpdate
in interfaceRepositoryOperations
- Parameters:
preparedQuery
- The prepared query- Returns:
- An optional number with the count of the number of records updated
-
delete
public <T> int delete(@NonNull DeleteOperation<T> operation)
Description copied from interface:RepositoryOperations
Deletes the entity.- Specified by:
delete
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The number of entities deleted
-
deleteAll
public <T> java.util.Optional<java.lang.Number> deleteAll(@NonNull DeleteBatchOperation<T> operation)
Description copied from interface:RepositoryOperations
Deletes all the entities of the given type.- Specified by:
deleteAll
in interfaceRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The number of entities deleted
-
findStream
@NonNull public <T,R> java.util.stream.Stream<R> findStream(@NonNull PreparedQuery<T,R> preparedQuery)
Description copied from interface:RepositoryOperations
Finds all results for the given query.- Specified by:
findStream
in interfaceRepositoryOperations
- Type Parameters:
T
- The entity typeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- An iterable result
-
async
@NonNull public ExecutorAsyncOperations async()
- Specified by:
async
in interfaceAsyncCapableRepository
- Returns:
- The async operations.
-
reactive
@NonNull public ReactiveRepositoryOperations reactive()
- Specified by:
reactive
in interfaceReactiveCapableRepository
- Returns:
- The reactive operations instance.
-
getCurrentEntityManager
@NonNull public javax.persistence.EntityManager getCurrentEntityManager()
- Specified by:
getCurrentEntityManager
in interfaceJpaRepositoryOperations
- Returns:
- The currrent entity manager
-
getEntityManagerFactory
@NonNull public javax.persistence.EntityManagerFactory getEntityManagerFactory()
- Specified by:
getEntityManagerFactory
in interfaceJpaRepositoryOperations
- Returns:
- The entity manager factory
-
flush
public void flush()
Description copied from interface:JpaRepositoryOperations
Flush the current session.- Specified by:
flush
in interfaceJpaRepositoryOperations
-
-