Package org.hibernate.dialect.sql.ast
Class MySQLSqlAstTranslator<T extends JdbcOperation>
java.lang.Object
org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
org.hibernate.sql.ast.spi.SqlAstTranslatorWithUpsert<T>
org.hibernate.dialect.sql.ast.SqlAstTranslatorWithOnDuplicateKeyUpdate<T>
org.hibernate.dialect.sql.ast.MySQLSqlAstTranslator<T>
- All Implemented Interfaces:
Appendable
,SqlAppender
,SqlAstTranslator<T>
,SqlAstWalker
public class MySQLSqlAstTranslator<T extends JdbcOperation>
extends SqlAstTranslatorWithOnDuplicateKeyUpdate<T>
A SQL AST translator for MySQL.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
AbstractSqlAstTranslator.LockStrategy, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X extends Expression>
-
Field Summary
Fields inherited from interface org.hibernate.sql.ast.spi.SqlAppender
CLOSE_PARENTHESIS, COMMA_SEPARATOR, COMMA_SEPARATOR_CHAR, NO_SEPARATOR, NULL_KEYWORD, OPEN_PARENTHESIS, PARAM_MARKER, WHITESPACE
-
Constructor Summary
ConstructorsConstructorDescriptionMySQLSqlAstTranslator
(SessionFactoryImplementor sessionFactory, Statement statement, MySQLDialect dialect) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected String
determineColumnReferenceQualifier
(ColumnReference columnReference) static String
getSqlType
(CastTarget castTarget, SessionFactoryImplementor factory) protected void
renderComparison
(Expression lhs, ComparisonOperator operator, Expression rhs) protected void
renderDeleteClause
(DeleteStatement statement) protected void
renderDerivedTableReference
(DerivedTableReference tableReference) protected void
renderDmlTargetTableExpression
(NamedTableReference tableReference) protected void
renderExpressionAsClauseItem
(Expression expression) protected void
protected void
renderPartitionItem
(Expression expression) protected void
renderStringContainsExactlyPredicate
(Expression haystack, Expression needle) protected void
renderUpdateClause
(UpdateStatement updateStatement) protected void
renderUpdatevalue
(ColumnValueBinding columnValueBinding) protected boolean
shouldEmulateFetchClause
(QueryPart queryPart) void
visitBinaryArithmeticExpression
(BinaryArithmeticExpression arithmeticExpression) void
visitBooleanExpressionPredicate
(BooleanExpressionPredicate booleanExpressionPredicate) void
visitCastTarget
(CastTarget castTarget) void
visitColumnReference
(ColumnReference columnReference) protected void
visitConflictClause
(ConflictClause conflictClause) protected void
visitInsertSource
(InsertSelectStatement statement) void
visitLikePredicate
(LikePredicate likePredicate) void
visitOffsetFetchClause
(QueryPart queryPart) void
visitQueryGroup
(QueryGroup queryGroup) void
visitQuerySpec
(QuerySpec querySpec) protected void
visitRecursivePath
(Expression recursivePath, int sizeEstimate) Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.void
visitValuesTableReference
(ValuesTableReference tableReference) Methods inherited from class org.hibernate.dialect.sql.ast.SqlAstTranslatorWithOnDuplicateKeyUpdate
createMergeOperation, renderInsertInto, renderOnDuplicateKeyUpdate, renderUpsertStatement
Methods inherited from class org.hibernate.sql.ast.spi.SqlAstTranslatorWithUpsert
renderMergeInsert, renderMergeInto, renderMergeOn, renderMergeSource, renderMergeSourceAlias, renderMergeTargetAlias, renderMergeUpdate, renderMergeUsing, wrapMergeSourceExpression
Methods inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
addAdditionalWherePredicate, addAffectedTableName, addAppliedParameterBinding, addParameterBinder, addParameterBinder, afterQueryGroup, append, append, append, appendBackslashEscapedLikeLiteral, appendDoubleQuoteEscapedString, appendSingleQuoteEscapedString, appendSql, appendSql, appendSql, appendSql, appendSql, areAllResultsParameters, areAllResultsParameters, assertRowsOnlyFetchClauseType, beforeQueryGroup, castFunction, castNumberToString, cleanup, createRowMatchingPredicate, determineCyclePathColumnName, determineLateralEmulationPredicate, determineLockingStrategy, determineWhereClauseRestrictionWithJoinEmulation, determineWhereClauseRestrictionWithJoinEmulation, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getArrayContainsFunction, getBooleanType, getCastTypeName, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDual, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getFromDualForSelectOnly, getIntegerType, getJdbcLockStrategy, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLiteralValue, getLockingClauseStrategy, getLockOptions, getMaxRows, getOffsetParameter, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryPartForRowNumbering, getQueryPartStack, getRowsToSkip, getSelectItemReference, getSessionFactory, getSortSpecificationsRowNumbering, getSql, getSqlAppender, getSqlAst, getSqlBuffer, getSqlTypeName, getStatement, getStatementStack, getStringType, getUniqueConstraintNameThatMayFail, getWrapperOptions, hasAggregateFunctions, hasFrom, hasLimit, hasLimit, hasNestedTableGroupsToRender, hasNonTrivialFromClause, hasOffset, hasWhere, inlineCteTableGroup, inOverOrWithinGroupClause, interpretExpression, isCorrelated, isInRecursiveQueryPart, isInSubquery, isIntegerDivisionEmulationRequired, isLiteral, isParameter, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, needsMaxRows, needsParenthesesAroundQueryGroup, needsRecursiveKeywordInWithClause, needsRowsToSkip, prepareLimitOffsetParameters, prependSql, processNestedTableGroupJoins, processTableGroupJoin, processTableGroupJoins, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteColumns, renderCycleClause, renderDerivedTableReferenceIdentificationVariable, renderDmlTargetTableGroup, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderFetch, renderFetchExpression, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderFromClauseAfterUpdateSet, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertIntoNoColumns, renderInterval, renderIntervalLiteral, renderIntoIntoAndTable, renderJoinedTableGroup, renderLikePredicate, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderMergeUpdateClause, renderNamedSetReturningFunction, renderNamedTableReference, renderNull, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderOrderBy, renderParameterAsParameter, renderPrimaryTableReference, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSelectTupleComparison, renderSetClause, renderSimpleNamedFunction, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardCycleClause, renderStandardSearchClause, renderTableGroupJoin, renderTableReferenceIdentificationVariable, renderTableReferenceJoins, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderVirtualSelections, renderWrappedParameter, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setLockingTarget, setOffsetParameter, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, supportsRecursiveClauseArrayAndRowEmulation, translate, translateDelete, translateInsert, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitArithmeticOperand, visitAssignment, visitBetweenPredicate, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCollation, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCteDefinition, visitCteObject, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEmbeddableTypeLiteral, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInArrayPredicate, visitInListPredicate, visitInsertStatement, visitInsertStatementEmulateMerge, visitInsertStatementOnly, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, visitNullnessPredicate, visitOnDuplicateKeyConflictClause, visitOnDuplicateKeyConflictClauseWithDoNothing, visitOptionalTableUpdate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryClauses, visitQueryLiteral, visitQueryPartTableReference, visitRelationalPredicate, visitReturningColumns, visitReturningColumns, visitSelectClause, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSetAssignmentEmulateJoin, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitSqlSelections, visitStandardConflictClause, visitStandardTableDelete, visitStandardTableInsert, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitThruthnessPredicate, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUnparsedNumericLiteral, visitUpdateStatement, visitUpdateStatementEmulateInlineView, visitUpdateStatementEmulateMerge, visitUpdateStatementEmulateTupleSet, visitUpdateStatementOnly, visitValuesList, visitValuesListEmulateSelectUnion, visitValuesListStandard, visitWhereClause, withParameterRenderingMode, withRowNumbering
-
Constructor Details
-
MySQLSqlAstTranslator
public MySQLSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement, MySQLDialect dialect)
-
-
Method Details
-
getSqlType
-
visitBinaryArithmeticExpression
- Specified by:
visitBinaryArithmeticExpression
in interfaceSqlAstWalker
- Overrides:
visitBinaryArithmeticExpression
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitInsertSource
- Overrides:
visitInsertSource
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitColumnReference
- Specified by:
visitColumnReference
in interfaceSqlAstWalker
- Overrides:
visitColumnReference
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDeleteClause
- Overrides:
renderDeleteClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderUpdateClause
- Overrides:
renderUpdateClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDmlTargetTableExpression
- Overrides:
renderDmlTargetTableExpression
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitConflictClause
- Overrides:
visitConflictClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
determineColumnReferenceQualifier
- Overrides:
determineColumnReferenceQualifier
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderExpressionAsClauseItem
- Overrides:
renderExpressionAsClauseItem
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitRecursivePath
Description copied from class:AbstractSqlAstTranslator
Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.- Overrides:
visitRecursivePath
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitBooleanExpressionPredicate
- Specified by:
visitBooleanExpressionPredicate
in interfaceSqlAstWalker
- Overrides:
visitBooleanExpressionPredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
shouldEmulateFetchClause
-
visitQueryGroup
- Specified by:
visitQueryGroup
in interfaceSqlAstWalker
- Overrides:
visitQueryGroup
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitQuerySpec
- Specified by:
visitQuerySpec
in interfaceSqlAstWalker
- Overrides:
visitQuerySpec
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitValuesTableReference
- Specified by:
visitValuesTableReference
in interfaceSqlAstWalker
- Overrides:
visitValuesTableReference
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDerivedTableReference
- Overrides:
renderDerivedTableReference
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitOffsetFetchClause
- Specified by:
visitOffsetFetchClause
in interfaceSqlAstWalker
- Overrides:
visitOffsetFetchClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderComparison
- Overrides:
renderComparison
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderPartitionItem
- Overrides:
renderPartitionItem
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitLikePredicate
- Specified by:
visitLikePredicate
in interfaceSqlAstWalker
- Overrides:
visitLikePredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getDialect
- Overrides:
getDialect
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitCastTarget
- Specified by:
visitCastTarget
in interfaceSqlAstWalker
- Overrides:
visitCastTarget
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderStringContainsExactlyPredicate
- Overrides:
renderStringContainsExactlyPredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderNewRowAlias
protected void renderNewRowAlias()- Overrides:
renderNewRowAlias
in classSqlAstTranslatorWithOnDuplicateKeyUpdate<T extends JdbcOperation>
-
renderUpdatevalue
- Overrides:
renderUpdatevalue
in classSqlAstTranslatorWithOnDuplicateKeyUpdate<T extends JdbcOperation>
-
appendAssignmentColumn
- Overrides:
appendAssignmentColumn
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-