SQLDialect to be supported by any jOOQ statement in
the scope of this annotation.
This annotation can be used at the use-site of jOOQ API at any given scope
ElementType#PACKAGE, ElementType#TYPE,
ElementType#METHOD in order to specify that the given scope allows
ANY of the supplied SQLDialect to be supported by all usage of jOOQ
API within the scope. For example:
// Allow only MYSQL or ORACLE dialect support to be used within the class scope
@Allow(MYSQL, ORACLE)
public class MySQLAndOracleDAO {
// Allow rule from class applies to this method
public void mysqlAndOracleMethod() {
DSL.using(configuration)
.insertInto(TABLE, TABLE.COLUMN)
.values(1)
// This type checks as it works on both MySQL and Oracle
.onDuplicateKeyUpdate()
.set(TABLE.COLUMN, 2)
.execute();
}
// Refine class Allow rule with additional requirement
@Require(ORACLE)
public void oracleOnlyMethod() {
DSL.using(configuration)
.mergeInto(TABLE)
.using(selectOne())
.on(TABLE.COLUMN.eq(1))
.whenMatchedThenUpdate()
.set(TABLE.COLUMN, 2)
.whenNotMatchedThenInsert(TABLE.COLUMN)
.values(1)
.execute();
}
}
Type checking for these annotations can be supplied by
org.jooq.checker.SQLDialectChecker from the jOOQ-checker module.
Allow annotation, no jOOQ API usage is
allowed.Allow annotations and of the inner-most
Require annotation is applied for any given scope.SQLDialect is allowed (rather than a
SQLDialect#family()), then the allowed version, all of its
SQLDialect#predecessor(), and its SQLDialect#family() are
allowed.
Apart from the above main purpose, the Allow annotation also serves
as a semantic namespace for other annotations, such as Allow.
Require
| Modifier and Type | Class and Description |
|---|---|
| public static @interface | Allow.PlainSQL
This annotation allows |
| Modifier and Type | Method and Description |
|---|---|
| public SQLDialect[] | value()
A list of jOOQ |
| value | back to summary |
|---|---|
| public SQLDialect[] value() A list of jOOQ | |
PlainSQL API usage within the scope of
where it is placed.
Type checking for these annotations can be supplied by
org.jooq.checker.PlainSQLChecker from the jOOQ-checker
module.