org.jooq.InsertValuesStep16 Maven / Gradle / Ivy
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Other licenses:
* -----------------------------------------------------------------------------
* Commercial licenses for this work are available. These replace the above
* Apache-2.0 license and offer limited warranties, support, maintenance, and
* commercial database integrations.
*
* For more information, please visit: http://www.jooq.org/licenses
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package org.jooq;
import java.util.Collection;
import java.util.function.Function;
import org.jetbrains.annotations.NotNull;
/**
* This type is used for the {@link Insert}'s DSL API.
*
* Example:
* using(configuration)
* .insertInto(table, field1, field2, field3, .., field15, field16)
* .values(valueA1, valueA2, valueA3, .., valueA15, valueA16)
* .values(valueB1, valueB2, valueB3, .., valueB15, valueB16)
* .onDuplicateKeyUpdate()
* .set(field1, value1)
* .set(field2, value2)
* .execute();
*
*
* @author Lukas Eder
*/
public interface InsertValuesStep16 extends InsertOnDuplicateStep {
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 values(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14, T15 value15, T16 value16);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 values(Field value1, Field value2, Field value3, Field value4, Field value5, Field value6, Field value7, Field value8, Field value9, Field value10, Field value11, Field value12, Field value13, Field value14, Field value15, Field value16);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 values(Collection> values);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 values(Row16 values);
/**
* Add a single row of values to the insert statement.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 values(Record16 values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* @see Rows#toRowArray(Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function)
*/
@NotNull @CheckReturnValue
@Support
@SuppressWarnings("unchecked")
InsertValuesStep16 valuesOfRows(Row16... values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* @see Rows#toRowList(Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function, Function)
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 valuesOfRows(Collection extends Row16> values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* Note: Irrespective of individual {@link Record#changed()}
* flag values, all record values are copied to the VALUES
clause
* using {@link Record#intoArray()}, to match insert columns by position, not
* by name.
*/
@NotNull @CheckReturnValue
@Support
@SuppressWarnings("unchecked")
InsertValuesStep16 valuesOfRecords(Record16... values);
/**
* Add multiple rows of values to the insert statement.
*
* This is equivalent to calling the other values clauses multiple times, but
* allows for dynamic construction of row arrays.
*
* Note: Irrespective of individual {@link Record#changed()}
* flag values, all record values are copied to the VALUES
clause
* using {@link Record#intoArray()}, to match insert columns by position, not
* by name.
*/
@NotNull @CheckReturnValue
@Support
InsertValuesStep16 valuesOfRecords(Collection extends Record16> values);
/**
* Use a SELECT
statement as the source of values for the
* INSERT
statement
*
* This variant of the INSERT … SELECT
statement expects a
* select returning exactly as many fields as specified previously in the
* INTO
clause:
* {@link DSLContext#insertInto(Table, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field)}
*/
@NotNull @CheckReturnValue
@Support
InsertOnDuplicateStep select(Select extends Record16> select);
}