Class SqlQueryBuilder.DefaultReturningSelectionVisitor
java.lang.Object
io.micronaut.data.model.query.builder.sql.AbstractSqlLikeQueryBuilder.SqlSelectionVisitor
io.micronaut.data.model.query.builder.sql.SqlQueryBuilder.SqlSelectionVisitor
io.micronaut.data.model.query.builder.sql.SqlQueryBuilder.DefaultReturningSelectionVisitor
- All Implemented Interfaces:
ExpressionVisitor, SelectionVisitor, AbstractSqlLikeQueryBuilder.ReturningSelectionVisitor
- Enclosing class:
SqlQueryBuilder
@Internal
protected final class SqlQueryBuilder.DefaultReturningSelectionVisitor
extends SqlQueryBuilder.SqlSelectionVisitor
implements AbstractSqlLikeQueryBuilder.ReturningSelectionVisitor
Default implementation of
AbstractSqlLikeQueryBuilder.ReturningSelectionVisitor used by SqlQueryBuilder
to render the projection for SQL RETURNING clauses (INSERT/UPDATE/DELETE).
In addition to emitting the selection into the SQL buffer, this visitor collects:
- Unescaped column names in declaration order via
getUnescapedColumns() - Result column data types via
getResultColumnTypes()
RETURNING ... INTO
OUT parameters instead of a result set.
This type is not thread-safe and is intended for per-query use only. It is an internal implementation detail and not part of the public API.
- Since:
- 1.0.0
- Author:
- graemerocher, Denis Stepanov
- See Also:
-
Field Summary
Fields inherited from class AbstractSqlLikeQueryBuilder.SqlSelectionVisitor
annotationMetadata, columnAlias, distinct, entity, query, queryState, tableAlias -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAppend the property projection.Returns the data types for the columns produced by the RETURNING clause.Returns the list of physical column names as they appear in the SQL, without dialect-specific quoting applied.voidselectAllColumns(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, PersistentEntity entity, @Nullable String alias) Selects all columns for the given entity and alias.Methods inherited from class SqlQueryBuilder.SqlSelectionVisitor
appendRowCount, appendRowCountDistinct, selectAllColumnsAndJoined, selectAllColumnsFromJoinPathsMethods inherited from class AbstractSqlLikeQueryBuilder.SqlSelectionVisitor
appendAssociationProjection, appendCompoundAssociationProjection, appendCompoundProjection, appendCompoundPropertyProjection, appendProperty, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ExpressionVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitMethods inherited from interface SelectionVisitor
visit, visit, visit, visit
-
Method Details
-
getUnescapedColumns
Description copied from interface:AbstractSqlLikeQueryBuilder.ReturningSelectionVisitorReturns the list of physical column names as they appear in the SQL, without dialect-specific quoting applied.- Specified by:
getUnescapedColumnsin interfaceAbstractSqlLikeQueryBuilder.ReturningSelectionVisitor- Returns:
- unescaped column names in the order they are rendered
-
getResultColumnTypes
Description copied from interface:AbstractSqlLikeQueryBuilder.ReturningSelectionVisitorReturns the data types for the columns produced by the RETURNING clause. The order must matchAbstractSqlLikeQueryBuilder.ReturningSelectionVisitor.getUnescapedColumns().- Specified by:
getResultColumnTypesin interfaceAbstractSqlLikeQueryBuilder.ReturningSelectionVisitor- Returns:
- result column data types
-
selectAllColumns
public void selectAllColumns(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, PersistentEntity entity, @Nullable String alias) Description copied from class:SqlQueryBuilder.SqlSelectionVisitorSelects all columns for the given entity and alias.- Overrides:
selectAllColumnsin classSqlQueryBuilder.SqlSelectionVisitor- Parameters:
annotationMetadata- The annotation metadataentity- The entityalias- The alias
-
appendPropertyProjection
Description copied from class:AbstractSqlLikeQueryBuilder.SqlSelectionVisitorAppend the property projection.- Overrides:
appendPropertyProjectionin classAbstractSqlLikeQueryBuilder.SqlSelectionVisitor- Parameters:
propertyPath- The property
-