Datatype for
UUID.
For databases not supporting this type natively, it is mapped to VARCHAR(36).
There are alternatives (storing in 2 longs or 16 bytes, etc...),
but manually written SQL queries may become rather tricky.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final UUIDthe NIL value.static final Stringthe NIL string.Fields inherited from class org.tentackle.sql.datatypes.AbstractDataType
maxLinesInLiteral -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets the object from a result set.
Must be implemented ifDataType.isPredefined()returns false.Gets the name of the Java type.getMappedNullValue(Backend backend, int index) Gets the mapped non-null value that represents the model's null value.
The method throws aBackendException, if !DataType.isMapNullSupported().intGets the column size.
Sizes may be differently aligned according to the backend.int[]Gets the indexes to the sortable columns.
The number and order of the indexes is reflected in the generated order-by SQL clause.getSqlType(Backend backend, int index) Gets the SQL type.
For predefined types, the type must be the same for all backends and the backend argument may be null.
Application specific types, however, can use different sql types for different backends and for those types the backend argument is always valid.booleanReturns whether this type supports mapping null values to some well-defined constant.booleanReturns whether this is a predefined type.Object[]set(Backend backend, PreparedStatement statement, int pos, UUID object, boolean mapNull, Integer size) Sets the object into a prepared statement.
Must be implemented ifDataType.isPredefined()returns false.Parses a string and converts to the value of this type.
The method is used to parse a literal (for example the default value defined in the model).valueOfLiteralToCode(String str, Integer index) Creates the java code to apply the valueOf method to a String.Methods inherited from class org.tentackle.sql.datatypes.AbstractDataType
assertColumnCountNotBackendSpecific, createColumnNames, createColumnNamesAsString, equals, getColumnAlias, getColumnCount, getColumnGetter, getColumnSuffix, getColumnValue, getCommentSuffix, getDataTypeConstant, getScale, getVariant, hashCode, isBool, isColumnCountBackendSpecific, isDateOrTime, isDowncastNecessary, isJavaTypeGenerified, isLiteralSupported, isModelProvidingInnerType, isMutable, isNumeric, isPrimitive, isTimezoneApplicable, isUTCSupported, set, toLiteral, toNonPrimitive, toPrimitive, toString, toString, valueStringToCode
-
Field Details
-
NIL
the NIL value. -
NIL_STR
the NIL string.
-
-
Constructor Details
-
UUIDType
public UUIDType()Creates the datatype forUUID.
-
-
Method Details
-
getJavaType
Description copied from interface:DataTypeGets the name of the Java type.- Returns:
- the type
-
getSortableColumns
public int[] getSortableColumns()Description copied from interface:DataTypeGets the indexes to the sortable columns.
The number and order of the indexes is reflected in the generated order-by SQL clause.- Specified by:
getSortableColumnsin interfaceDataType<UUID>- Overrides:
getSortableColumnsin classAbstractDataType<UUID>- Returns:
- the column indexes, null or empty if datatype is not sortable in a meaningful manner by the database
-
isMapNullSupported
public boolean isMapNullSupported()Description copied from interface:DataTypeReturns whether this type supports mapping null values to some well-defined constant.- Specified by:
isMapNullSupportedin interfaceDataType<UUID>- Overrides:
isMapNullSupportedin classAbstractDataType<UUID>- Returns:
- true if mapNull supported
-
getMappedNullValue
Description copied from interface:DataTypeGets the mapped non-null value that represents the model's null value.
The method throws aBackendException, if !DataType.isMapNullSupported().- Specified by:
getMappedNullValuein interfaceDataType<UUID>- Overrides:
getMappedNullValuein classAbstractDataType<UUID>- Parameters:
backend- the backend, null if not backend-specificindex- the column index- Returns:
- the non-null mapped value
-
isPredefined
public boolean isPredefined()Description copied from interface:DataTypeReturns whether this is a predefined type.- Specified by:
isPredefinedin interfaceDataType<UUID>- Overrides:
isPredefinedin classAbstractDataType<UUID>- Returns:
- true if explicit methods provided by the persistence layer, false if generic methods must be used
-
getSqlType
Description copied from interface:DataTypeGets the SQL type.
For predefined types, the type must be the same for all backends and the backend argument may be null.
Application specific types, however, can use different sql types for different backends and for those types the backend argument is always valid.- Parameters:
backend- the backend, not used by predefined typesindex- the column index- Returns:
- the SQL type
-
getSize
Description copied from interface:DataTypeGets the column size.
Sizes may be differently aligned according to the backend. -
valueOf
Description copied from interface:DataTypeParses a string and converts to the value of this type.
The method is used to parse a literal (for example the default value defined in the model).Notice: the method doesn't use any locale, so the results are always the same regardless of the JVM's locale.
- Parameters:
str- the source string- Returns:
- the value
-
valueOfLiteralToCode
Description copied from interface:DataTypeCreates the java code to apply the valueOf method to a String.- Specified by:
valueOfLiteralToCodein interfaceDataType<UUID>- Overrides:
valueOfLiteralToCodein classAbstractDataType<UUID>- Parameters:
str- the literal to be parsedindex- the column index, null if applies to object of this type- Returns:
- the java code
-
set
public Object[] set(Backend backend, PreparedStatement statement, int pos, UUID object, boolean mapNull, Integer size) throws SQLException Description copied from interface:DataTypeSets the object into a prepared statement.
Must be implemented ifDataType.isPredefined()returns false. Not invoked by framework otherwise.- Parameters:
backend- the database backendstatement- the prepared statementpos- the position of the first SQL valueobject- the object, may be nullmapNull- true if map null-values to non-null valuessize- the optional size specified in the model- Returns:
- the values stored in the prepared statement
- Throws:
SQLException- if failed
-
get
public UUID get(Backend backend, ResultSet resultSet, int[] pos, boolean mapNull, Integer size) throws SQLException Description copied from interface:DataTypeGets the object from a result set.
Must be implemented ifDataType.isPredefined()returns false. Not invoked by framework otherwise.- Parameters:
backend- the database backendresultSet- the result setpos- the column positions in the result setmapNull- true if unmap null-values from non-null valuessize- the optional size specified in the model- Returns:
- the object or null if column(s) IS NULL
- Throws:
SQLException- if failed
-