Class SqlAstTranslatorWithOnDuplicateKeyUpdate<T extends JdbcOperation>
java.lang.Object
org.hibernate.dialect.sql.ast.spi.AbstractSqlAstTranslator<T>
org.hibernate.dialect.sql.ast.spi.SqlAstTranslatorWithOnDuplicateKeyUpdate<T>
- All Implemented Interfaces:
Appendable, SqlAstWalker, SqlAstTranslator<T>, SqlAppender
@SPI({USE,IMPLEMENT})
public abstract class SqlAstTranslatorWithOnDuplicateKeyUpdate<T extends JdbcOperation>
extends AbstractSqlAstTranslator<T>
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractSqlAstTranslator
AbstractSqlAstTranslator.LockStrategy, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X> -
Field Summary
Fields inherited from interface SqlAppender
CLOSE_PARENTHESIS, COMMA_SEPARATOR, COMMA_SEPARATOR_CHAR, NO_SEPARATOR, NULL_KEYWORD, OPEN_PARENTHESIS, PARAM_MARKER, WHITESPACE -
Constructor Summary
ConstructorsConstructorDescriptionSqlAstTranslatorWithOnDuplicateKeyUpdate(SqlAstTranslationRequest<? extends Statement, T> request) -
Method Summary
Modifier and TypeMethodDescriptioncreateMergeOperation(OptionalTableUpdate optionalTableUpdate) Create the MutationOperation for performing the DELETE or UPSERTprotected voidrenderInsertInto(OptionalTableUpdate optionalTableUpdate) protected voidprotected voidrenderOnDuplicateKeyUpdate(OptionalTableUpdate optionalTableUpdate) protected abstract voidrenderUpdateValue(ColumnValueBinding columnValueBinding) protected voidrenderUpsertStatement(OptionalTableUpdate optionalTableUpdate) Methods inherited from class AbstractSqlAstTranslator
addAdditionalWherePredicate, addAffectedTableName, addParameterBinder, addParameterBinder, afterQueryGroup, append, append, append, appendBackslashEscapedLikeLiteral, appendDoubleQuoteEscapedString, appendSingleQuoteEscapedString, appendSql, appendSql, appendSql, appendSql, appendSql, appendSql, appendSql, applySqlComment, areAllResultsParameters, areAllResultsParameters, assertRowsOnlyFetchClauseType, beforeQueryGroup, castFunction, castNumberToString, determineColumnReferenceQualifier, determineCyclePathColumnName, determineLateralEmulationPredicate, determineLockingStrategy, determinePaginationRenderingPlan, determineUniqueConstraintNameThatMayFail, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, getAffectedTableNames, getArrayContainsFunction, getBooleanType, getClauseStack, getCteParameterRenderingMode, getCteStatement, getCurrentClauseStack, getCurrentDmlStatement, getCurrentQueryPart, getDerivedTableRenderingSupport, getDialect, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getGroupBySelectItemReferenceStrategy, getInsertConflictRenderingSupport, getIntegerType, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLiteralValue, getLockingClauseStrategy, getLockOptions, getOffsetParameter, getPaginationRenderingSupport, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryMutationRenderingSupport, getQueryPartForRowNumbering, getQueryPartStack, getReturningRenderingSupport, getSelectItemReference, getSelectOnlyFromClause, getSessionFactory, getSetReturningFunctionRenderingSupport, getSingleRowTableExpression, getSortSpecificationsRowNumbering, getSql, getSqlAst, getSqlBuffer, getStatement, getStatementStack, getStringType, getTableJoinRenderingSupport, getTranslationRequest, getVersionSeedMapping, getWrapperOptions, hasAggregateFunctions, hasFrom, hasLimit, hasLimit, hasNestedOrTargetTableCorrelation, hasNonTrivialFromClause, hasOffset, hasTargetTableCorrelation, hasWhere, inOverOrWithinGroupClause, interpretExpression, isInRecursiveQueryPart, isInSubquery, isIntegerDivisionEmulationRequired, isLiteral, isLob, isParameter, isParameterInterpretation, isRenderingCorrelatedDerivedTable, isRenderingDerivedTable, isRenderingLateralDerivedTable, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, preferUnionQueryForTupleInListPredicate, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderAssignmentColumn, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderColumnWrite, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparison, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteSelectHint, renderCycleClause, renderCycleUsingClause, renderDeleteClause, renderDeleteStatementDirect, renderDeleteStatementWithJoinEmulation, renderDerivedTableReferenceIdentificationVariable, renderDmlTargetTableExpression, renderEmptyOrderBy, renderEscapeCharacter, renderExpressionAsClauseItem, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderExpressionsAsValuesSubquery, renderFetch, renderFetchExpression, renderFetchFirstRow, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderFromClauseAfterUpdateSet, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertInto, renderInsertIntoNoColumns, renderInsertStatementAsMerge, renderInterval, renderIntervalLiteral, renderIntoIntoAndTable, renderLegacyReturningInsert, renderLikePattern, renderLikePredicate, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderMergeUpdateClause, renderNamedSetReturningFunction, renderNull, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderOnDuplicateKeyConflictClause, renderOrderByClause, renderParameterAsParameter, renderPartitionItem, renderPrimaryTableReferencePrefix, renderQuantifiedEmulationSubQuery, renderQueryGroupWithoutOrderByAndOffsetFetch, renderQueryPartTableReferenceWithSelectListAliases, renderRecursiveCteVirtualSelections, renderRelationalEmulationSubQuery, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectItems, renderSelectSimpleComparison, renderSelectStatement, renderSelectTupleComparison, renderSetAssignment, renderSetAssignmentEmulateJoin, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardConflictClause, renderStandardCycleClause, renderStandardSearchClause, renderStandardTableInsert, renderStandardTableUpdate, renderStatementPrefix, renderStringContainsExactlyPredicate, renderTableReferenceAlias, renderTableReferenceIdentificationVariable, renderTenantRestriction, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderUpdateClause, renderUpdateStatementAsInlineView, renderUpdateStatementAsMerge, renderUpdateStatementAsScalarSubquery, renderUpdateStatementAsTupleSet, renderUpdateStatementDirect, renderValuesListAsSelectUnion, renderValuesListStandard, renderValuesTableReferenceWithSelectListAliases, renderVirtualSelections, renderWrappedParameter, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLockingTarget, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, translate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitArithmeticOperand, visitAssignment, visitBetweenPredicate, visitBinaryArithmeticExpression, visitBooleanExpressionPredicate, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteClause, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEmbeddableTypeLiteral, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInArrayPredicate, visitInListPredicate, visitInsertStatement, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitLikePredicate, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, visitNullnessPredicate, visitOffsetFetchClause, visitOptionalTableUpdate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryClauses, visitQueryGroup, visitQueryLiteral, visitQueryPartTableReference, visitQuerySpec, visitRecursivePath, visitRelationalPredicate, visitSelectClause, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitStandardTableDelete, visitStandardTableInsert, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitThruthnessPredicate, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUnparsedNumericLiteral, visitUpdateClause, visitUpdateStatement, visitUpdateStatementOnly, visitValuesList, visitValuesTableReference, visitWhereClause, withoutLateralDerivedTableContext, withParameterRenderingMode, withRowNumbering
-
Constructor Details
-
SqlAstTranslatorWithOnDuplicateKeyUpdate
@SPI(IMPLEMENT) public SqlAstTranslatorWithOnDuplicateKeyUpdate(SqlAstTranslationRequest<? extends Statement, T> request)
-
-
Method Details
-
createMergeOperation
Create the MutationOperation for performing the DELETE or UPSERT -
renderUpsertStatement
-
renderInsertInto
-
renderNewRowAlias
protected void renderNewRowAlias() -
renderOnDuplicateKeyUpdate
-
renderUpdateValue
-