-
@Pro public interface SelectForXMLStep<R extends Record>
This type is used for theSelect
's DSL API when selecting genericRecord
types.Example:
Its equivalent in jOOQ-- 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
Refer to the manual for more detailscreate.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();
Referencing
XYZ*Step
types directly from client codeIt 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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description @NotNull SelectForXMLRawDirectivesStep<R>
auto()
Add a SQL Server-styleFOR XML AUTO
clause.@NotNull SelectForXMLPathDirectivesStep<R>
path()
Add a SQL Server-styleFOR XML PATH
clause.@NotNull SelectForXMLPathDirectivesStep<R>
path(String elementName)
Add a SQL Server-styleFOR XML PATH
clause.@NotNull SelectForXMLRawDirectivesStep<R>
raw()
Add a SQL Server-styleFOR XML RAW
clause.@NotNull SelectForXMLRawDirectivesStep<R>
raw(String elementName)
Add a SQL Server-styleFOR XML RAW
clause.
-
-
-
Method Detail
-
raw
@NotNull @Support({DB2,ORACLE,POSTGRES,SQLSERVER}) @Pro @NotNull SelectForXMLRawDirectivesStep<R> raw()
Add a SQL Server-styleFOR XML RAW
clause.
-
raw
@NotNull @Support({DB2,ORACLE,POSTGRES,SQLSERVER}) @Pro @NotNull SelectForXMLRawDirectivesStep<R> raw(String elementName)
Add a SQL Server-styleFOR XML RAW
clause.
-
auto
@NotNull @Support({DB2,ORACLE,POSTGRES,SQLSERVER}) @Pro @NotNull SelectForXMLRawDirectivesStep<R> auto()
Add a SQL Server-styleFOR XML AUTO
clause.
-
path
@NotNull @Support({DB2,ORACLE,POSTGRES,SQLSERVER}) @Pro @NotNull SelectForXMLPathDirectivesStep<R> path()
Add a SQL Server-styleFOR XML PATH
clause.
-
-