Module org.jooq
Package org.jooq

Class Stringly

java.lang.Object
org.jooq.Stringly

public final class Stringly extends Object
A container for annotations on stringly typed API.

When working with SQL, strings are ubiquitous. They can have different meanings, in the jOOQ API. A string can be:

  • A bind variable (i.e. a Param)
  • A plain SQL template (i.e. a SQL)
  • An identifier (i.e. a Name)
  • A keyword (i.e. a Keyword)
  • A comment (i.e. a Comment

While the jOOQ API applies conventions consistently, it may not always be clear which convention applies. Keywords are hardly a problem, but beginners often confuse when jOOQ offers plain SQL templates for convenience (arbitrary SQL fragments, usually not case-sensitive, SQL injection prone), or identifiers (often case-sensitive, depending on the dialect).

The annotations in this class are used to document each of these stringly typed API elements to make the semantics more clear. For increased clarity, the stringly-typed convenience API can always be avoided in favour of the more strongly-typed API.

Author:
Lukas Eder
See Also:
https://blog.jooq.org/2020/04/03/whats-a-string-in-the-jooq-api/
  • Constructor Details

    • Stringly

      public Stringly()