@Target(value={METHOD,CONSTRUCTOR,TYPE,PACKAGE})
@Retention(value=RUNTIME)
@Documented
@Inherited
public @interface Require
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 requires
ALL 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.
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 required (rather than a
SQLDialect.family()
), then the required version, any of its
SQLDialect.predecessor()
, or its SQLDialect.family()
are
required.Allow
Modifier and Type | Optional Element and Description |
---|---|
SQLDialect[] |
value
A list of jOOQ
SQLDialect which are required on any jOOQ API
method that is annotated with Support . |
public abstract SQLDialect[] value
SQLDialect
which are required on any jOOQ API
method that is annotated with Support
.Copyright © 2018. All Rights Reserved.