Merge
's DSL API.
Example:
DSLContext create = DSL.using(configuration);
create.mergeInto(table)
.using(select)
.on(condition)
.whenMatchedThenUpdate()
.set(field1, value1)
.set(field2, value2)
.whenNotMatchedThenInsert(field1, field2)
.values(value1, value2)
.execute();
Referencing XYZ*Step
types directly from client code
It is usually not recommended to reference any XYZ*Step
types
directly from client code, or assign them to local variables. When writing
dynamic SQL, creating a statement's components dynamically, and passing them
to the DSL API statically is usually a better choice. See the manual's
section about dynamic SQL for details: https://www.jooq.org/doc/latest/manual/sql-building/dynamic-sql.
Drawbacks of referencing the XYZ*Step
types directly:
- They're operating on mutable implementations (as of jOOQ 3.x)
- They're less composable and not easy to get right when dynamic SQL gets complex
- They're less readable
- They might have binary incompatible changes between minor releases
- Author:
- Lukas Eder
-
Method Summary
Modifier and TypeMethodDescription@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step, connecting them with each other withOperator.AND
.@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step, connecting them with each other withOperator.AND
.@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step@NotNull MergeOnConditionStep<R>
Provide join conditions and proceed to the next step
-
Method Details
-
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @NotNull MergeOnConditionStep<R> on(Condition condition)Provide join conditions and proceed to the next step, connecting them with each other withOperator.AND
. -
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @NotNull MergeOnConditionStep<R> on(Condition... conditions)Provide join conditions and proceed to the next step, connecting them with each other withOperator.AND
. -
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @NotNull MergeOnConditionStep<R> on(Field<Boolean> condition)Provide join conditions and proceed to the next step -
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @PlainSQL @NotNull MergeOnConditionStep<R> on(SQL sql)Provide join conditions and proceed to the next stepNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
- See Also:
DSL.condition(SQL)
,SQL
-
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @PlainSQL @NotNull MergeOnConditionStep<R> on(String sql)Provide join conditions and proceed to the next stepNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
- See Also:
DSL.condition(String)
,SQL
-
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @PlainSQL @NotNull MergeOnConditionStep<R> on(String sql, Object... bindings)Provide join conditions and proceed to the next stepNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
-
on
@NotNull @CheckReturnValue @Support({CUBRID,DB2,DERBY,EXASOL,FIREBIRD_3_0,H2,HANA,HSQLDB,INFORMIX,ORACLE,SNOWFLAKE,SQLSERVER,SYBASE,TERADATA,VERTICA}) @PlainSQL @NotNull MergeOnConditionStep<R> on(String sql, QueryPart... parts)Provide join conditions and proceed to the next stepNOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
-