add java doc in Types annotations
This commit is contained in:
parent
18ee6ab214
commit
ba86534086
1 changed files with 301 additions and 3 deletions
|
@ -23,11 +23,36 @@ import java.lang.annotation.Target;
|
||||||
|
|
||||||
import com.datastax.driver.core.DataType;
|
import com.datastax.driver.core.DataType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types annotations are using for clarification of Cassandra data type for particular Java type.
|
||||||
|
*
|
||||||
|
* Sometimes it is possible to have for single Java type multiple Cassandra data types:
|
||||||
|
* - @String can be @DataType.Name.ASCII or @DataType.Name.TEXT or @DataType.Name.VARCHAR
|
||||||
|
* - @Long can be @DataType.Name.BIGINT or @DataType.Name.COUNTER
|
||||||
|
*
|
||||||
|
* All those type annotations simplify mapping between Java types and Cassandra data types.
|
||||||
|
* They are not required, for each Java type there is a default Cassandra data type in Casser, but in some
|
||||||
|
* cases you would like to control mapping to make sure that the right Cassandra data type is using.
|
||||||
|
*
|
||||||
|
* For complex types like collections, UDF and Tuple types all those annotations are using to
|
||||||
|
* clarify the sub-type(s) or class/UDF names.
|
||||||
|
*
|
||||||
|
* Has significant effect on schema operations.
|
||||||
|
*
|
||||||
|
* @author Albert Shift
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
public final class Types {
|
public final class Types {
|
||||||
|
|
||||||
private Types() {
|
private Types() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.ASCII data type in schema
|
||||||
|
* Java type is @String
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -35,6 +60,11 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.BIGINT data type in schema
|
||||||
|
* Java type is @Long
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -42,6 +72,12 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.BLOB data type in schema
|
||||||
|
* Java type is @ByteBuffer or @byte[]
|
||||||
|
* Using by default
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -49,26 +85,82 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.LIST data type in schema with specific sub-type
|
||||||
|
* Java type is @List
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: prepend, prependAll, setIdx, append, appendAll, discard and discardAll in @UpdateOperation
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface List {
|
public @interface List {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the sub-type data type in the collection.
|
||||||
|
* It supports only simple data type (not Collection, UDT or Tuple)
|
||||||
|
*
|
||||||
|
* In case if you need UDT sub-type in the list, consider @UDTList annotation
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name value();
|
DataType.Name value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.MAP data type in schema with specific sub-types
|
||||||
|
* Java type is @Map
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: put and putAll in @UpdateOperation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface Map {
|
public @interface Map {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the sub-type data type in the collection.
|
||||||
|
* It supports only simple data type (not Collection, UDT or Tuple)
|
||||||
|
*
|
||||||
|
* In case if you need UDT key sub-type in the map, consider @UDTKeyMap or @UDTMap annotations
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name key();
|
DataType.Name key();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the sub-type data type in the collection.
|
||||||
|
* It supports only simple data type (not Collection, UDT or Tuple)
|
||||||
|
*
|
||||||
|
* In case if you need UDT value sub-type in the map, consider @UDTValueMap or @UDTMap annotations
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name value();
|
DataType.Name value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.COUNTER type in schema
|
||||||
|
* Java type is @Long
|
||||||
|
*
|
||||||
|
* For this type there are special operations: increment and decrement in @UpdateOperation.
|
||||||
|
* You do not need to initialize counter value, it will be done automatically by Cassandra.
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -76,24 +168,63 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.SET data type in schema with specific sub-type
|
||||||
|
* Java type is @Set
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: add, addAll, remove and removeAll in @UpdateOperation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface Set {
|
public @interface Set {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the sub-type data type in the collection.
|
||||||
|
* It supports only simple data type (not Collection, UDT or Tuple)
|
||||||
|
*
|
||||||
|
* In case if you need UDT sub-type in the set, consider @UDTSet annotation
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name value();
|
DataType.Name value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.CUSTOM type in schema
|
||||||
|
* Java type is @ByteBuffer or @byte[]
|
||||||
|
*
|
||||||
|
* Uses for custom user types that has special implementation.
|
||||||
|
* Casser does not deal with this class directly for now, uses only in serialized form.
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface Custom {
|
public @interface Custom {
|
||||||
|
|
||||||
String className() default "";
|
/**
|
||||||
|
* Class name of the custom user type that is implementation of the type
|
||||||
|
*/
|
||||||
|
|
||||||
|
String className();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.TEXT type in schema
|
||||||
|
* Java type is @String
|
||||||
|
* Using by default
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -101,6 +232,12 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.TIMESTAMP type in schema
|
||||||
|
* Java type is @Date
|
||||||
|
* Using by default
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -108,6 +245,11 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.TIMEUUID type in schema
|
||||||
|
* Java type is @UUID or @Date
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -115,76 +257,227 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.TUPLE type in schema
|
||||||
|
* Java type is @TupleValue or model interface with @Tuple annotation
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface Tuple {
|
public @interface Tuple {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If Java type is the @TupleValue then this field is required.
|
||||||
|
* Any Cassandra Tuple is the sequence of Cassandra types.
|
||||||
|
* For now Casser supports only simple data types in tuples for @TupleValue Java type
|
||||||
|
*
|
||||||
|
* In case if Java type is the model interface with @Tuple annotation then
|
||||||
|
* all methods in this interface can have Types annotations that can be complex types as well.
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name[] value() default {};
|
DataType.Name[] value() default {};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.UDT type in schema
|
||||||
|
* Java type is @UDTValue or model interface with @UDT annotation
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface UDT {
|
public @interface UDT {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If Java type is the @UDTValue then this field is required.
|
||||||
|
* Any Cassandra UDT has name and must be created before this use as a Cassandra Type.
|
||||||
|
*
|
||||||
|
* This value is the UDT name of the Cassandra Type that was already created in the schema
|
||||||
|
*
|
||||||
|
* In case of Java type is the model interface with @UDT annotation then
|
||||||
|
* this field is not using since model interface defines UserDefinedType with specific name
|
||||||
|
*/
|
||||||
|
|
||||||
String value() default "";
|
String value() default "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Only used for JavaType @UDTValue
|
||||||
|
*
|
||||||
|
* In case if value() method returns reserved word that can not be used as a name of UDT then
|
||||||
|
* forceQuote will add additional quotes around this name in all CQL queries.
|
||||||
|
*
|
||||||
|
* Default value is false.
|
||||||
|
*/
|
||||||
|
|
||||||
boolean forceQuote() default false;
|
boolean forceQuote() default false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.MAP data type in schema with specific UDT sub-type as a key and simple sub-type as a value
|
||||||
|
* Java type is @Map
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: put and putAll in @UpdateOperation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface UDTKeyMap {
|
public @interface UDTKeyMap {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the UDT data type as a key sub-type in the collection.
|
||||||
|
*/
|
||||||
|
|
||||||
UDT key();
|
UDT key();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the sub-type data type in the collection.
|
||||||
|
* It supports only simple data type (not Collection, UDT or Tuple)
|
||||||
|
*
|
||||||
|
* In case if you need UDT value sub-type in the map, consider @UDTMap annotations
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name value();
|
DataType.Name value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.LIST data type in schema with specific UDT sub-type
|
||||||
|
* Java type is @List
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: prepend, prependAll, setIdx, append, appendAll, discard and discardAll in @UpdateOperation
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface UDTList {
|
public @interface UDTList {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the UDT data type as a sub-type in the collection.
|
||||||
|
*/
|
||||||
|
|
||||||
UDT value();
|
UDT value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.MAP data type in schema with specific UDT sub-types
|
||||||
|
* Java type is @Map
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: put and putAll in @UpdateOperation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface UDTMap {
|
public @interface UDTMap {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the UDT data type as a key sub-type in the collection.
|
||||||
|
*/
|
||||||
|
|
||||||
UDT key();
|
UDT key();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the UDT data type as a value sub-type in the collection.
|
||||||
|
*/
|
||||||
|
|
||||||
UDT value();
|
UDT value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.SET data type in schema with specific UDT sub-type
|
||||||
|
* Java type is @Set
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: add, addAll, remove and removeAll in @UpdateOperation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface UDTSet {
|
public @interface UDTSet {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the UDT data type as a sub-type in the collection.
|
||||||
|
*/
|
||||||
|
|
||||||
UDT value();
|
UDT value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.MAP data type in schema with specific simple sub-type as a key and UDT sub-type as a value
|
||||||
|
* Java type is @Map
|
||||||
|
*
|
||||||
|
* Casser does not allow to use a specific implementation of the collection thereof data retrieval operation
|
||||||
|
* result can be a collection with another implementation.
|
||||||
|
*
|
||||||
|
* This annotation is usually used only for sub-types clarification and only in case if sub-type is Java type that
|
||||||
|
* corresponds to multiple Cassandra data types.
|
||||||
|
*
|
||||||
|
* For this type there are special operations: put and putAll in @UpdateOperation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
public @interface UDTValueMap {
|
public @interface UDTValueMap {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the sub-type data type in the collection.
|
||||||
|
* It supports only simple data type (not Collection, UDT or Tuple)
|
||||||
|
*
|
||||||
|
* In case if you need UDT key sub-type in the map, consider @UDTMap annotations
|
||||||
|
*/
|
||||||
|
|
||||||
DataType.Name key();
|
DataType.Name key();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clarification of using the UDT data type as a value sub-type in the collection.
|
||||||
|
*/
|
||||||
|
|
||||||
UDT value();
|
UDT value();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.UUID type in schema
|
||||||
|
* Java type is @UUID
|
||||||
|
* Using by default
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
@ -192,6 +485,11 @@ public final class Types {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says to use @DataType.Name.VARCHAR type in schema
|
||||||
|
* Java type is @String
|
||||||
|
*/
|
||||||
|
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
@Target(value = { ElementType.METHOD, ElementType.ANNOTATION_TYPE })
|
||||||
|
|
Loading…
Reference in a new issue