All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jooq.DeleteQuery Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2009-2016, Data Geekery GmbH (http://www.datageekery.com)
 * All rights reserved.
 *
 * 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
 * ASL 2.0 and offer limited warranties, support, maintenance, and commercial
 * database integrations.
 *
 * For more information, please visit: http://www.jooq.org/licenses
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package org.jooq;

// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
import static org.jooq.SQLDialect.POSTGRES;

import java.util.Collection;

/**
 * A query used for deletion of data
 *
 * @param  The record type of the table being deleted from
 * @author Lukas Eder
 */
@SuppressWarnings("deprecation")
public interface DeleteQuery extends ConditionProvider, Delete {

    // ------------------------------------------------------------------------
    // Methods from ConditionProvider, OrderProvider, LockProvider
    // ------------------------------------------------------------------------

    /**
     * {@inheritDoc}
     */
    @Override
    @Support
    void addConditions(Condition... conditions);

    /**
     * {@inheritDoc}
     */
    @Override
    @Support
    void addConditions(Collection conditions);

    /**
     * {@inheritDoc}
     */
    @Override
    @Support
    void addConditions(Operator operator, Condition... conditions);

    /**
     * {@inheritDoc}
     */
    @Override
    @Support
    void addConditions(Operator operator, Collection conditions);

    // ------------------------------------------------------------------------
    // XXX: Methods for the DELETE .. RETURNING syntax
    // ------------------------------------------------------------------------

    /**
     * Configure the DELETE statement to return all fields in
     * R.
     *
     * @see #getReturnedRecords()
     */
    @Support({ FIREBIRD, POSTGRES })
    void setReturning();

    /**
     * Configure the DELETE statement to return a list of fields in
     * R.
     *
     * @param fields Fields to be returned
     * @see #getReturnedRecords()
     */
    @Support({ FIREBIRD, POSTGRES })
    void setReturning(Field... fields);

    /**
     * Configure the DELETE statement to return a list of fields in
     * R.
     *
     * @param fields Fields to be returned
     * @see #getReturnedRecords()
     */
    @Support({ FIREBIRD, POSTGRES })
    void setReturning(Collection> fields);

    /**
     * The record holding returned values as specified by any of the
     * {@link #setReturning()} methods.
     * 

* If the DELETE statement returns several records, this is the * same as calling getReturnedRecords().get(0) *

* This implemented differently for every dialect: *

    *
  • Firebird and Postgres have native support for * DELETE .. RETURNING clauses
  • *
* * @return The returned value as specified by any of the * {@link #setReturning()} methods. This may return * null in case jOOQ could not retrieve any generated * keys from the JDBC driver. * @see #getReturnedRecords() */ @Support({ FIREBIRD, POSTGRES }) R getReturnedRecord(); /** * The records holding returned values as specified by any of the * {@link #setReturning()} methods. *

* If the DELETE statement returns several records, this is the * same as calling getReturnedRecords().get(0) *

* This implemented differently for every dialect: *

    *
  • Firebird and Postgres have native support for * DELETE .. RETURNING clauses
  • *
* * @return The returned values as specified by any of the * {@link #setReturning()} methods. Note: *
    *
  • Not all databases / JDBC drivers support returning several * values on multi-row inserts!
  • This may return an empty * Result in case jOOQ could not retrieve any generated * keys from the JDBC driver.
  • *
*/ @Support({ FIREBIRD, POSTGRES }) Result getReturnedRecords(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy