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

org.jooq.SelectSeekStep17 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 javax.annotation.Generated;

import org.jooq.Record;

/**
 * This type is used for the {@link Select}'s DSL API when selecting generic
 * {@link Record} types.
 * 

* Example:

 * -- get all authors' first and last names, and the number
 * -- of books they've written in German, if they have written
 * -- more than five books in German in the last three years
 * -- (from 2011), and sort those authors by last names
 * -- limiting results to the second and third row
 *
 *   SELECT T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, COUNT(*)
 *     FROM T_AUTHOR
 *     JOIN T_BOOK ON T_AUTHOR.ID = T_BOOK.AUTHOR_ID
 *    WHERE T_BOOK.LANGUAGE = 'DE'
 *      AND T_BOOK.PUBLISHED > '2008-01-01'
 * GROUP BY T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME
 *   HAVING COUNT(*) > 5
 * ORDER BY T_AUTHOR.LAST_NAME ASC NULLS FIRST
 *    LIMIT 2
 *   OFFSET 1
 *      FOR UPDATE
 *       OF FIRST_NAME, LAST_NAME
 *       NO WAIT
 * 
Its equivalent in jOOQ
 * create.select(TAuthor.FIRST_NAME, TAuthor.LAST_NAME, create.count())
 *       .from(T_AUTHOR)
 *       .join(T_BOOK).on(TBook.AUTHOR_ID.equal(TAuthor.ID))
 *       .where(TBook.LANGUAGE.equal("DE"))
 *       .and(TBook.PUBLISHED.greaterThan(parseDate('2008-01-01')))
 *       .groupBy(TAuthor.FIRST_NAME, TAuthor.LAST_NAME)
 *       .having(create.count().greaterThan(5))
 *       .orderBy(TAuthor.LAST_NAME.asc().nullsFirst())
 *       .limit(2)
 *       .offset(1)
 *       .forUpdate()
 *       .of(TAuthor.FIRST_NAME, TAuthor.LAST_NAME)
 *       .noWait();
 * 
Refer to the manual for more details * * @author Lukas Eder */ @Generated("This class was generated using jOOQ-tools") public interface SelectSeekStep17 extends SelectLimitStep { /** * Add a synthetic SEEK AFTER clause to the query. *

* The synthetic SEEK AFTER clause is an alternative way to specify * an OFFSET, and thus to perform paging in a SQL query. This * can be advantageous for two reasons: *

*

    *
  1. The SQL generated from the SEEK AFTER clause is a regular * predicate, which can be used by query plan optimisers to choose an * appropriate index. The SQL standard OFFSET clause will need * to skip N rows in memory.
  2. *
  3. The SEEK AFTER clause is stable with respect to new data being * inserted or data being deleted while paging through pages.
  4. *
*

* Example:

     * DSL.using(configuration)
     *    .selectFrom(TABLE)
     *    .orderBy(ID, CODE)
     *    .seek(3, "abc")
     *    .fetch();
     * 
*

* The above query will render the following SQL statement: *

*

     * SELECT * FROM table
     * WHERE (id, code) > (3, 'abc')
     * ORDER BY id ASC, code ASC
     * 
*

* The actual row value expression predicate may be expanded into this * equivalent predicate: *

*

     * WHERE (id > 3) OR (id = 3 AND code > 'abc')
     * 
*

* The SEEK AFTER method currently does not support seeking * NULL values, or operating with NULLS FIRST, * NULLS LAST clauses in the ORDER BY clause. * * @see http://use-the-index-luke.com/sql/partial-results/fetch-next-page * @see http://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method * @see #seekAfter(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) */ SelectSeekLimitStep seek(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17); /** * Add a synthetic SEEK AFTER clause to the query. *

* The synthetic SEEK AFTER clause is an alternative way to specify * an OFFSET, and thus to perform paging in a SQL query. This * can be advantageous for two reasons: *

*

    *
  1. The SQL generated from the SEEK AFTER clause is a regular * predicate, which can be used by query plan optimisers to choose an * appropriate index. The SQL standard OFFSET clause will need * to skip N rows in memory.
  2. *
  3. The SEEK AFTER clause is stable with respect to new data being * inserted or data being deleted while paging through pages.
  4. *
*

* Example:

     * DSL.using(configuration)
     *    .selectFrom(TABLE)
     *    .orderBy(ID, CODE)
     *    .seek(3, "abc")
     *    .fetch();
     * 
*

* The above query will render the following SQL statement: *

*

     * SELECT * FROM table
     * WHERE (id, code) > (3, 'abc')
     * ORDER BY id ASC, code ASC
     * 
*

* The actual row value expression predicate may be expanded into this * equivalent predicate: *

*

     * WHERE (id > 3) OR (id = 3 AND code > 'abc')
     * 
*

* The SEEK AFTER method currently does not support seeking * NULL values, or operating with NULLS FIRST, * NULLS LAST clauses in the ORDER BY clause. * * @see http://use-the-index-luke.com/sql/partial-results/fetch-next-page * @see http://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method * @see #seekAfter(Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field, Field) */ SelectSeekLimitStep seek(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); /** * Add a synthetic SEEK AFTER clause to the query. *

* The synthetic SEEK AFTER clause is an alternative way to specify * an OFFSET, and thus to perform paging in a SQL query. This * can be advantageous for two reasons: *

*

    *
  1. The SQL generated from the SEEK AFTER clause is a regular * predicate, which can be used by query plan optimisers to choose an * appropriate index. The SQL standard OFFSET clause will need * to skip N rows in memory.
  2. *
  3. The SEEK AFTER clause is stable with respect to new data being * inserted or data being deleted while paging through pages.
  4. *
*

* Example:

     * DSL.using(configuration)
     *    .selectFrom(TABLE)
     *    .orderBy(ID, CODE)
     *    .seekAfter(3, "abc")
     *    .fetch();
     * 
*

* The above query will render the following SQL statement: *

*

     * SELECT * FROM table
     * WHERE (id, code) > (3, 'abc')
     * ORDER BY id ASC, code ASC
     * 
*

* The actual row value expression predicate may be expanded into this * equivalent predicate: *

*

     * WHERE (id > 3) OR (id = 3 AND code > 'abc')
     * 
*

* The SEEK AFTER method currently does not support seeking * NULL values, or operating with NULLS FIRST, * NULLS LAST clauses in the ORDER BY clause. * * @see http://use-the-index-luke.com/sql/partial-results/fetch-next-page * @see http://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method */ SelectSeekLimitStep seekAfter(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17); /** * Add a synthetic SEEK AFTER clause to the query. *

* The synthetic SEEK AFTER clause is an alternative way to specify * an OFFSET, and thus to perform paging in a SQL query. This * can be advantageous for two reasons: *

*

    *
  1. The SQL generated from the SEEK AFTER clause is a regular * predicate, which can be used by query plan optimisers to choose an * appropriate index. The SQL standard OFFSET clause will need * to skip N rows in memory.
  2. *
  3. The SEEK AFTER clause is stable with respect to new data being * inserted or data being deleted while paging through pages.
  4. *
*

* Example:

     * DSL.using(configuration)
     *    .selectFrom(TABLE)
     *    .orderBy(ID, CODE)
     *    .seekAfter(3, "abc")
     *    .fetch();
     * 
*

* The above query will render the following SQL statement: *

*

     * SELECT * FROM table
     * WHERE (id, code) > (3, 'abc')
     * ORDER BY id ASC, code ASC
     * 
*

* The actual row value expression predicate may be expanded into this * equivalent predicate: *

*

     * WHERE (id > 3) OR (id = 3 AND code > 'abc')
     * 
*

* The SEEK AFTER method currently does not support seeking * NULL values, or operating with NULLS FIRST, * NULLS LAST clauses in the ORDER BY clause. * * @see http://use-the-index-luke.com/sql/partial-results/fetch-next-page * @see http://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method */ SelectSeekLimitStep seekAfter(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); /** * Add a synthetic SEEK BEFORE clause to the query. *

* The synthetic SEEK BEFORE clause is an alternative way to specify * an OFFSET, and thus to perform paging in a SQL query. This * can be advantageous for two reasons: *

*

    *
  1. The SQL generated from the SEEK BEFORE clause is a regular * predicate, which can be used by query plan optimisers to choose an * appropriate index. The SQL standard OFFSET clause will need * to skip N rows in memory.
  2. *
  3. The SEEK BEFORE clause is stable with respect to new data being * inserted or data being deleted while paging through pages.
  4. *
*

* Example:

     * DSL.using(configuration)
     *    .selectFrom(TABLE)
     *    .orderBy(ID, CODE)
     *    .seekBefore(3, "abc")
     *    .fetch();
     * 
*

* The above query will render the following SQL statement: *

*

     * SELECT * FROM table
     * WHERE (id, code) < (3, 'abc')
     * ORDER BY id ASC, code ASC
     * 
*

* The actual row value expression predicate may be expanded into this * equivalent predicate: *

*

     * WHERE (id < 3) OR (id = 3 AND code < 'abc')
     * 
*

* The SEEK BEFORE method currently does not support seeking * NULL values, or operating with NULLS FIRST, * NULLS LAST clauses in the ORDER BY clause. * * @see http://use-the-index-luke.com/sql/partial-results/fetch-next-page * @see http://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method */ SelectSeekLimitStep seekBefore(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17); /** * Add a synthetic SEEK BEFORE clause to the query. *

* The synthetic SEEK BEFORE clause is an alternative way to specify * an OFFSET, and thus to perform paging in a SQL query. This * can be advantageous for two reasons: *

*

    *
  1. The SQL generated from the SEEK BEFORE clause is a regular * predicate, which can be used by query plan optimisers to choose an * appropriate index. The SQL standard OFFSET clause will need * to skip N rows in memory.
  2. *
  3. The SEEK BEFORE clause is stable with respect to new data being * inserted or data being deleted while paging through pages.
  4. *
*

* Example:

     * DSL.using(configuration)
     *    .selectFrom(TABLE)
     *    .orderBy(ID, CODE)
     *    .seekBefore(3, "abc")
     *    .fetch();
     * 
*

* The above query will render the following SQL statement: *

*

     * SELECT * FROM table
     * WHERE (id, code) < (3, 'abc')
     * ORDER BY id ASC, code ASC
     * 
*

* The actual row value expression predicate may be expanded into this * equivalent predicate: *

*

     * WHERE (id < 3) OR (id = 3 AND code < 'abc')
     * 
*

* The SEEK BEFORE method currently does not support seeking * NULL values, or operating with NULLS FIRST, * NULLS LAST clauses in the ORDER BY clause. * * @see http://use-the-index-luke.com/sql/partial-results/fetch-next-page * @see http://blog.jooq.org/2013/10/26/faster-sql-paging-with-jooq-using-the-seek-method */ SelectSeekLimitStep seekBefore(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy