Package liquibase.sqlgenerator.core
Class InsertOrUpdateGenerator
- java.lang.Object
-
- liquibase.sqlgenerator.core.AbstractSqlGenerator<InsertOrUpdateStatement>
-
- liquibase.sqlgenerator.core.InsertOrUpdateGenerator
-
- All Implemented Interfaces:
PrioritizedService,SqlGenerator<InsertOrUpdateStatement>
- Direct Known Subclasses:
InsertOrUpdateGeneratorDB2,InsertOrUpdateGeneratorH2,InsertOrUpdateGeneratorHsql,InsertOrUpdateGeneratorInformix,InsertOrUpdateGeneratorMSSQL,InsertOrUpdateGeneratorMySQL,InsertOrUpdateGeneratorOracle,InsertOrUpdateGeneratorPostgres,InsertOrUpdateGeneratorSnowflake,InsertOrUpdateGeneratorSQLite,InsertOrUpdateGeneratorSybaseASA
public abstract class InsertOrUpdateGenerator extends AbstractSqlGenerator<InsertOrUpdateStatement>
-
-
Field Summary
-
Fields inherited from interface liquibase.servicelocator.PrioritizedService
COMPARATOR
-
Fields inherited from interface liquibase.sqlgenerator.SqlGenerator
EMPTY_SQL, PRIORITY_DATABASE, PRIORITY_DEFAULT
-
-
Constructor Summary
Constructors Constructor Description InsertOrUpdateGenerator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Sql[]generateSql(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain sqlGeneratorChain)Generate the actual Sql for the given statement and database.protected TablegetAffectedTable(InsertOrUpdateStatement insertOrUpdateStatement)protected abstract StringgetElse(Database database)protected StringgetInsertStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain sqlGeneratorChain)protected StringgetPostUpdateStatements(Database database)intgetPriority()Of all the SqlGenerators that "support" a given SqlStatement/Database, SqlGeneratorFactory will return the one with the highest priority.protected abstract StringgetRecordCheck(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause)protected StringgetUpdateStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause, SqlGeneratorChain sqlGeneratorChain)Generates an SQL UPDATE statement for the specified insert or update statement, database, and SQL generator chain.protected StringgetWhereClause(InsertOrUpdateStatement insertOrUpdateStatement, Database database)ValidationErrorsvalidate(InsertOrUpdateStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain)Validate the data contained in the SqlStatement.-
Methods inherited from class liquibase.sqlgenerator.core.AbstractSqlGenerator
generateRollbackStatementsIsVolatile, generateStatementsIsVolatile, looksLikeFunctionCall, supports, warn
-
-
-
-
Method Detail
-
getRecordCheck
protected abstract String getRecordCheck(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause)
-
getPriority
public int getPriority()
Description copied from interface:SqlGeneratorOf all the SqlGenerators that "support" a given SqlStatement/Database, SqlGeneratorFactory will return the one with the highest priority.- Specified by:
getPriorityin interfacePrioritizedService- Specified by:
getPriorityin interfaceSqlGenerator<InsertOrUpdateStatement>- Overrides:
getPriorityin classAbstractSqlGenerator<InsertOrUpdateStatement>
-
validate
public ValidationErrors validate(InsertOrUpdateStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain)
Description copied from interface:SqlGeneratorValidate the data contained in the SqlStatement. If there are no errors, return an empty ValidationErrors object, not a null value. Liquibase will inspect the ValidationErrors result before attempting to call generateSql.
-
getWhereClause
protected String getWhereClause(InsertOrUpdateStatement insertOrUpdateStatement, Database database)
-
getInsertStatement
protected String getInsertStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain sqlGeneratorChain)
-
getUpdateStatement
protected String getUpdateStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause, SqlGeneratorChain sqlGeneratorChain) throws LiquibaseException
Generates an SQL UPDATE statement for the specified insert or update statement, database, and SQL generator chain.- Parameters:
insertOrUpdateStatement- the insert or update statement to generate the update statement fromdatabase- the database to generate the update statement forwhereClause- the WHERE clause to use in the update statementsqlGeneratorChain- the SQL generator chain to use in the update statement- Returns:
- the generated update statement, or
nullif there is nothing to update - Throws:
LiquibaseException- if there is an error generating the update statement
-
generateSql
public Sql[] generateSql(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain sqlGeneratorChain)
Description copied from interface:SqlGeneratorGenerate the actual Sql for the given statement and database.
-
getAffectedTable
protected Table getAffectedTable(InsertOrUpdateStatement insertOrUpdateStatement)
-
-