@EachBean(value=javax.sql.DataSource.class) public class DefaultJdbcRepositoryOperations extends AbstractSqlRepositoryOperations<java.sql.ResultSet,java.sql.PreparedStatement> implements JdbcRepositoryOperations, AsyncCapableRepository, ReactiveCapableRepository, java.lang.AutoCloseable
JdbcRepositoryOperations
.AbstractSqlRepositoryOperations.StatementSupplier<PS>, AbstractSqlRepositoryOperations.StoredInsert<T>
columnIndexResultSetReader, columnNameResultSetReader, dateTimeProvider, DEFAULT_SQL_BUILDER, entityEventRegistry, jsonCodec, preparedStatementWriter, QUERY_LOG, queryBuilders
Modifier | Constructor and Description |
---|---|
protected |
DefaultJdbcRepositoryOperations(java.lang.String dataSourceName,
javax.sql.DataSource dataSource,
TransactionOperations<java.sql.Connection> transactionOperations,
java.util.concurrent.ExecutorService executorService,
io.micronaut.context.BeanContext beanContext,
java.util.List<io.micronaut.http.codec.MediaTypeCodec> codecs,
DateTimeProvider dateTimeProvider,
RuntimeEntityRegistry entityRegistry)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
ExecutorAsyncOperations |
async() |
void |
close() |
<T> long |
count(PagedQuery<T> pagedQuery)
Counts all results for the given 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.
|
<T> java.util.stream.Stream<T> |
entityStream(java.sql.ResultSet resultSet,
java.lang.Class<T> rootEntity)
Map a result set to a stream of the given type.
|
<T> java.util.stream.Stream<T> |
entityStream(java.sql.ResultSet resultSet,
java.lang.String prefix,
java.lang.Class<T> rootEntity)
Map a result set to a stream of the given type.
|
<R> R |
execute(ConnectionCallback<R> callback)
Execute the given operation with the given callback.
|
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> query)
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> T |
findOne(java.lang.Class<T> type,
java.io.Serializable id)
Find one by ID.
|
<T,R> R |
findOne(PreparedQuery<T,R> preparedQuery)
Find one by Query.
|
<R> Page<R> |
findPage(PagedQuery<R> query)
Find a page for the given entity and pageable.
|
<T> java.util.stream.Stream<T> |
findStream(PagedQuery<T> query)
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.
|
java.sql.Connection |
getConnection()
This method will return the currently active connection for the current transaction or throw an exception
if no transaction is present.
|
javax.sql.DataSource |
getDataSource() |
<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.
|
<R> R |
prepareStatement(java.lang.String sql,
PreparedStatementCallback<R> callback)
Execute the given operation with the given callback.
|
ReactiveRepositoryOperations |
reactive() |
<E,D> D |
readDTO(java.lang.String prefix,
java.sql.ResultSet resultSet,
java.lang.Class<E> rootEntity,
java.lang.Class<D> dtoType)
Read an entity using the given prefix to be passes to result set lookups.
|
<E> E |
readEntity(java.lang.String prefix,
java.sql.ResultSet resultSet,
java.lang.Class<E> type)
Read an entity using the given prefix to be passes to result set lookups.
|
<T> T |
update(UpdateOperation<T> operation)
Updates the entity for the given operation.
|
getEntity, getIdReader, isSqlServerWithoutOrderBy, prepareStatement, resolveAssociationInsert, resolveEntityInsert, resolveEntityUpdate, resolveInsert, setInsertParameters, setStatementParameter, shiftIndex, sizeOf, sortById, triggerPostLoad, triggerPostPersist, triggerPostRemove, triggerPostUpdate, triggerPrePersist, triggerPreRemove, triggerPreUpdate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
readDTO, readEntity
executeDelete, getEntity, getQueryHints
@Internal protected DefaultJdbcRepositoryOperations(@Parameter java.lang.String dataSourceName, javax.sql.DataSource dataSource, @Parameter TransactionOperations<java.sql.Connection> transactionOperations, @Named(value="io") @Nullable java.util.concurrent.ExecutorService executorService, io.micronaut.context.BeanContext beanContext, java.util.List<io.micronaut.http.codec.MediaTypeCodec> codecs, @NonNull DateTimeProvider dateTimeProvider, RuntimeEntityRegistry entityRegistry)
dataSourceName
- The data source namedataSource
- The datasourcetransactionOperations
- The JDBC operations for the data sourceexecutorService
- The executor servicebeanContext
- The bean contextcodecs
- The codecsdateTimeProvider
- The dateTimeProviderentityRegistry
- The entity registry@NonNull public ExecutorAsyncOperations async()
async
in interface AsyncCapableRepository
@NonNull public ReactiveRepositoryOperations reactive()
reactive
in interface ReactiveCapableRepository
@Nullable public <T,R> R findOne(@NonNull PreparedQuery<T,R> preparedQuery)
RepositoryOperations
findOne
in interface RepositoryOperations
T
- The generic resultTypeR
- The result typepreparedQuery
- The prepared querypublic <T> boolean exists(@NonNull PreparedQuery<T,java.lang.Boolean> preparedQuery)
RepositoryOperations
exists
in interface RepositoryOperations
T
- The generic resultTypepreparedQuery
- The prepared query@NonNull public <T,R> java.util.stream.Stream<R> findStream(@NonNull PreparedQuery<T,R> preparedQuery)
RepositoryOperations
findStream
in interface RepositoryOperations
T
- The entity typeR
- The result typepreparedQuery
- The prepared query@NonNull public <T,R> java.lang.Iterable<R> findAll(@NonNull PreparedQuery<T,R> preparedQuery)
RepositoryOperations
findAll
in interface RepositoryOperations
T
- The entity typeR
- The result typepreparedQuery
- The prepared query@NonNull public java.util.Optional<java.lang.Number> executeUpdate(@NonNull PreparedQuery<?,java.lang.Number> preparedQuery)
RepositoryOperations
executeUpdate
in interface RepositoryOperations
preparedQuery
- The prepared querypublic <T> java.util.Optional<java.lang.Number> deleteAll(@NonNull DeleteBatchOperation<T> operation)
RepositoryOperations
deleteAll
in interface RepositoryOperations
T
- The generic typeoperation
- The operationpublic <T> int delete(@NonNull DeleteOperation<T> operation)
RepositoryOperations
delete
in interface RepositoryOperations
T
- The generic typeoperation
- The operation@NonNull public <T> T update(@NonNull UpdateOperation<T> operation)
RepositoryOperations
update
in interface RepositoryOperations
T
- The generic typeoperation
- The operation@NonNull public <T> T persist(@NonNull InsertOperation<T> operation)
RepositoryOperations
persist
in interface RepositoryOperations
T
- The generic typeoperation
- The operation@Nullable public <T> T findOne(@NonNull java.lang.Class<T> type, @NonNull java.io.Serializable id)
RepositoryOperations
findOne
in interface RepositoryOperations
T
- The generic typetype
- The typeid
- The id@NonNull public <T> java.lang.Iterable<T> findAll(@NonNull PagedQuery<T> query)
RepositoryOperations
findAll
in interface RepositoryOperations
T
- The generic typequery
- The root entitypublic <T> long count(PagedQuery<T> pagedQuery)
RepositoryOperations
count
in interface RepositoryOperations
T
- The generic typepagedQuery
- The paged query@NonNull public <T> java.util.stream.Stream<T> findStream(@NonNull PagedQuery<T> query)
RepositoryOperations
findStream
in interface RepositoryOperations
T
- The generic typequery
- The querypublic <R> Page<R> findPage(@NonNull PagedQuery<R> query)
RepositoryOperations
findPage
in interface RepositoryOperations
R
- The entity generic typequery
- The query@NonNull public <T> java.lang.Iterable<T> persistAll(@NonNull InsertBatchOperation<T> operation)
RepositoryOperations
persistAll
in interface RepositoryOperations
T
- The generic typeoperation
- The operation@PreDestroy public void close()
close
in interface java.lang.AutoCloseable
@NonNull public javax.sql.DataSource getDataSource()
getDataSource
in interface JdbcOperations
@NonNull public java.sql.Connection getConnection()
JdbcOperations
getConnection
in interface JdbcOperations
@NonNull public <R> R execute(@NonNull ConnectionCallback<R> callback)
JdbcOperations
execute
in interface JdbcOperations
R
- The result typecallback
- The callback@NonNull public <R> R prepareStatement(@NonNull java.lang.String sql, @NonNull PreparedStatementCallback<R> callback)
JdbcOperations
prepareStatement
in interface JdbcOperations
R
- The result typesql
- The SQLcallback
- The callback@NonNull public <T> java.util.stream.Stream<T> entityStream(@NonNull java.sql.ResultSet resultSet, @NonNull java.lang.Class<T> rootEntity)
JdbcOperations
entityStream
in interface JdbcOperations
T
- The generic typeresultSet
- The result setrootEntity
- The entity type@NonNull public <E> E readEntity(@NonNull java.lang.String prefix, @NonNull java.sql.ResultSet resultSet, @NonNull java.lang.Class<E> type) throws DataAccessException
JdbcOperations
readEntity
in interface JdbcOperations
E
- The entity generic typeprefix
- The prefixresultSet
- The result settype
- The entity typeDataAccessException
- if it is not possible read the result from the result set.@NonNull public <E,D> D readDTO(@NonNull java.lang.String prefix, @NonNull java.sql.ResultSet resultSet, @NonNull java.lang.Class<E> rootEntity, @NonNull java.lang.Class<D> dtoType) throws DataAccessException
JdbcOperations
readDTO
in interface JdbcOperations
E
- The entity generic typeD
- The DTO generic typeprefix
- The prefixresultSet
- The result setrootEntity
- The entity typedtoType
- The DTO type. Must be annotated with Introspected
DataAccessException
- if it is not possible read the result from the result set.@NonNull public <T> java.util.stream.Stream<T> entityStream(@NonNull java.sql.ResultSet resultSet, @Nullable java.lang.String prefix, @NonNull java.lang.Class<T> rootEntity)
JdbcOperations
entityStream
in interface JdbcOperations
T
- The generic typeresultSet
- The result setprefix
- The prefix to use for each column name that is mappedrootEntity
- The entity type