Class DefaultSqlPreparedQuery<E,R>
java.lang.Object
io.micronaut.data.runtime.operations.internal.query.DefaultBindableParametersPreparedQuery<E,R>
io.micronaut.data.runtime.operations.internal.sql.DefaultSqlPreparedQuery<E,R>
- Type Parameters:
E- The entity typeR- The result type
- All Implemented Interfaces:
io.micronaut.core.annotation.AnnotationMetadataProvider,io.micronaut.core.annotation.AnnotationSource,io.micronaut.core.attr.AttributeHolder,io.micronaut.core.naming.Named,io.micronaut.data.model.runtime.PagedQuery<E>,io.micronaut.data.model.runtime.PreparedDataOperation<R>,io.micronaut.data.model.runtime.PreparedQuery<E,,R> io.micronaut.data.model.runtime.StoredDataOperation<R>,io.micronaut.data.model.runtime.StoredQuery<E,,R> BindableParametersPreparedQuery<E,,R> BindableParametersStoredQuery<E,,R> PersistentEntityAwareQuery<E>,SqlPreparedQuery<E,,R> SqlStoredQuery<E,,R> DelegatePreparedQuery<E,,R> DelegateStoredQuery<E,R>
@Internal
public class DefaultSqlPreparedQuery<E,R>
extends DefaultBindableParametersPreparedQuery<E,R>
implements SqlPreparedQuery<E,R>, DelegatePreparedQuery<E,R>
Implementation of
SqlPreparedQuery.- Since:
- 3.5.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.micronaut.data.runtime.operations.internal.query.BindableParametersStoredQuery
BindableParametersStoredQuery.BinderNested classes/interfaces inherited from interface io.micronaut.data.model.runtime.StoredQuery
io.micronaut.data.model.runtime.StoredQuery.OperationType -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected List<io.micronaut.data.model.runtime.QueryParameterBinding>protected Stringprotected final SqlStoredQuery<E,R> Fields inherited from class io.micronaut.data.runtime.operations.internal.query.DefaultBindableParametersPreparedQuery
invocationContext, preparedQuery, storedQueryFields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionDefaultSqlPreparedQuery(io.micronaut.data.model.runtime.PreparedQuery<E, R> preparedQuery) DefaultSqlPreparedQuery(io.micronaut.data.model.runtime.PreparedQuery<E, R> preparedQuery, SqlStoredQuery<E, R> sqlStoredQuery) DefaultSqlPreparedQuery(SqlStoredQuery<E, R> sqlStoredQuery) -
Method Summary
Modifier and TypeMethodDescriptionvoidattachPageable(io.micronaut.data.model.Pageable pageable, boolean isSingleResult) Modify the query according to the pageable.voidbindParameters(BindableParametersStoredQuery.Binder binder, E entity, Map<io.micronaut.data.model.runtime.QueryParameterBinding, Object> previousValues) Bind query parameters.collectAutoPopulatedPreviousValues(E entity) Collect auto-populated property values before pre-actions are triggered and property values are modified.List<io.micronaut.data.model.Pageable.Cursor>createCursors(List<Object> results, io.micronaut.data.model.Pageable pageable) Modify pageable based on the scan results.List<io.micronaut.data.model.Pageable.Cursor>createCursors(List<Object> results, io.micronaut.data.model.Pageable pageable, io.micronaut.data.model.runtime.RuntimePersistentEntity<Object> runtimePersistentEntity) Modify pageable based on the scan results.static io.micronaut.data.model.SortenhanceCursoredSort(io.micronaut.data.model.Sort sort, boolean isBackwards, io.micronaut.data.model.PersistentEntity persistentEntity) static io.micronaut.data.model.CursoredPageableenhancePageable(io.micronaut.data.model.CursoredPageable cursored, io.micronaut.data.model.PersistentEntity persistentEntity) io.micronaut.data.model.query.builder.sql.DialectGet dialect.io.micronaut.data.model.runtime.RuntimePersistentEntity<E>getQuery()io.micronaut.data.model.query.builder.sql.SqlQueryBuilder2protected intgetQueryParameterValueSize(io.micronaut.data.model.runtime.QueryParameterBinding parameter) Gets number of parameter values for the query parameter binding (used for IN for example).io.micronaut.data.model.runtime.QueryResultInfobooleanvoidCheck if query need to be modified to expand parameters.protected intCompute the size of the given object.Methods inherited from class io.micronaut.data.runtime.operations.internal.query.DefaultBindableParametersPreparedQuery
bindParameters, bindParametersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.annotation.AnnotationMetadataProvider
findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, getTargetAnnotationMetadata, isAnnotationPresent, isDeclaredAnnotationPresent, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByTypeMethods inherited from interface io.micronaut.core.annotation.AnnotationSource
getAnnotation, getAnnotation, getDeclaredAnnotation, getDeclaredAnnotation, isAnnotationPresent, isDeclaredAnnotationPresent, synthesize, synthesizeDeclaredMethods inherited from interface io.micronaut.data.runtime.operations.internal.query.BindableParametersPreparedQuery
bindParametersMethods inherited from interface io.micronaut.data.runtime.operations.internal.query.BindableParametersStoredQuery
bindParametersMethods inherited from interface io.micronaut.data.runtime.query.internal.DelegatePreparedQuery
getArguments, getAttribute, getAttribute, getAttributes, getPageable, getParameterArray, getParameterInRole, getQueryHints, getRepositoryType, getRootEntity, getStoredQueryDelegate, isDtoProjection, isRawQueryMethods inherited from interface io.micronaut.data.runtime.query.internal.DelegateStoredQuery
getAnnotationMetadata, getArgumentTypes, getEntityIdentifierType, getExpandableQueryParts, getJoinFetchPaths, getJoinPaths, getLimit, getName, getOffset, getOperationType, getParameterExpressions, getQueryBindings, getResultArgument, getResultDataType, getResultType, hasPageable, hasResultConsumer, isCount, isJsonEntity, isNative, isOptimisticLock, isProcedure, isSingleResult, useNumericPlaceholders
-
Field Details
-
cursorQueryBindings
-
cursorProperties
-
sqlStoredQuery
-
query
-
-
Constructor Details
-
DefaultSqlPreparedQuery
-
DefaultSqlPreparedQuery
public DefaultSqlPreparedQuery(io.micronaut.data.model.runtime.PreparedQuery<E, R> preparedQuery, SqlStoredQuery<E, R> sqlStoredQuery) -
DefaultSqlPreparedQuery
-
-
Method Details
-
getPersistentEntity
- Specified by:
getPersistentEntityin interfacePersistentEntityAwareQuery<E>- Overrides:
getPersistentEntityin classDefaultBindableParametersPreparedQuery<E,R> - Returns:
- The persistent entity
-
getPreparedQueryDelegate
- Specified by:
getPreparedQueryDelegatein interfaceDelegatePreparedQuery<E,R> - Overrides:
getPreparedQueryDelegatein classDefaultBindableParametersPreparedQuery<E,R> - Returns:
- The delegate
-
isExpandableQuery
public boolean isExpandableQuery()- Specified by:
isExpandableQueryin interfaceSqlStoredQuery<E,R> - Returns:
- true if query is expandable
-
getDialect
public io.micronaut.data.model.query.builder.sql.Dialect getDialect()Description copied from interface:SqlStoredQueryGet dialect.- Specified by:
getDialectin interfaceSqlStoredQuery<E,R> - Returns:
- dialect
-
getQueryBuilder
public io.micronaut.data.model.query.builder.sql.SqlQueryBuilder2 getQueryBuilder()- Specified by:
getQueryBuilderin interfaceSqlStoredQuery<E,R> - Returns:
- query builder for possible modification in the prepared query
-
getQuery
- Specified by:
getQueryin interfaceDelegatePreparedQuery<E,R> - Specified by:
getQueryin interfaceDelegateStoredQuery<E,R> - Specified by:
getQueryin interfaceio.micronaut.data.model.runtime.StoredQuery<E,R>
-
collectAutoPopulatedPreviousValues
public Map<io.micronaut.data.model.runtime.QueryParameterBinding,Object> collectAutoPopulatedPreviousValues(E entity) Description copied from interface:SqlStoredQueryCollect auto-populated property values before pre-actions are triggered and property values are modified.- Specified by:
collectAutoPopulatedPreviousValuesin interfaceSqlStoredQuery<E,R> - Parameters:
entity- The entity instance- Returns:
- collected values
-
prepare
Check if query need to be modified to expand parameters.- Specified by:
preparein interfaceSqlPreparedQuery<E,R> - Parameters:
entity- The entity instance
-
getQueryParameterValueSize
protected int getQueryParameterValueSize(io.micronaut.data.model.runtime.QueryParameterBinding parameter) Gets number of parameter values for the query parameter binding (used for IN for example).- Parameters:
parameter- the query binding parameter- Returns:
- number of parameter values in query parameter binding
-
enhanceCursoredSort
public static io.micronaut.data.model.Sort enhanceCursoredSort(io.micronaut.data.model.Sort sort, boolean isBackwards, io.micronaut.data.model.PersistentEntity persistentEntity) -
enhancePageable
public static io.micronaut.data.model.CursoredPageable enhancePageable(io.micronaut.data.model.CursoredPageable cursored, io.micronaut.data.model.PersistentEntity persistentEntity) -
attachPageable
public void attachPageable(io.micronaut.data.model.Pageable pageable, boolean isSingleResult) Description copied from interface:SqlPreparedQueryModify the query according to the pageable.- Specified by:
attachPageablein interfaceSqlPreparedQuery<E,R> - Parameters:
pageable- The pageableisSingleResult- is single result
-
createCursors
@Internal public List<io.micronaut.data.model.Pageable.Cursor> createCursors(List<Object> results, io.micronaut.data.model.Pageable pageable) Modify pageable based on the scan results. This is required for cursored pageable, as cursor is created from the results.- Parameters:
results- The scanning resultspageable- The pageable sent by user- Returns:
- The updated pageable
- Since:
- 4.8.0
-
createCursors
@Internal public List<io.micronaut.data.model.Pageable.Cursor> createCursors(List<Object> results, io.micronaut.data.model.Pageable pageable, io.micronaut.data.model.runtime.RuntimePersistentEntity<Object> runtimePersistentEntity) Modify pageable based on the scan results. This is required for cursored pageable, as cursor is created from the results.- Parameters:
results- The scanning resultspageable- The pageable sent by userruntimePersistentEntity- The runtime persistent entity. Actual repository persistent entity type or custom runtime persistent entity in case of DTO projection.- Returns:
- The updated pageable
- Since:
- 4.8.0
-
bindParameters
public void bindParameters(BindableParametersStoredQuery.Binder binder, E entity, Map<io.micronaut.data.model.runtime.QueryParameterBinding, Object> previousValues) Description copied from interface:BindableParametersPreparedQueryBind query parameters.- Specified by:
bindParametersin interfaceBindableParametersPreparedQuery<E,R> - Overrides:
bindParametersin classDefaultBindableParametersPreparedQuery<E,R> - Parameters:
binder- The binderentity- The entitypreviousValues- The previous auto-populated collected values
-
getQueryResultInfo
public io.micronaut.data.model.runtime.QueryResultInfo getQueryResultInfo()- Specified by:
getQueryResultInfoin interfaceSqlPreparedQuery<E,R> - Specified by:
getQueryResultInfoin interfaceSqlStoredQuery<E,R> - Returns:
- the query result info
-
sizeOf
Compute the size of the given object.- Parameters:
value- The value- Returns:
- The size
-