HHH-15160 - Add SPATIAL FunctionParameterType
This enables us to validate spatial arguments in functions.
This commit is contained in:
parent
b46bc13813
commit
559fbe77ce
|
@ -39,6 +39,7 @@ import static org.hibernate.type.SqlTypes.isCharacterOrClobType;
|
|||
import static org.hibernate.type.SqlTypes.isCharacterType;
|
||||
import static org.hibernate.type.SqlTypes.isIntegral;
|
||||
import static org.hibernate.type.SqlTypes.isNumericType;
|
||||
import static org.hibernate.type.SqlTypes.isSpatialType;
|
||||
import static org.hibernate.type.SqlTypes.isTemporalType;
|
||||
|
||||
|
||||
|
@ -240,6 +241,10 @@ public class ArgumentTypesValidator implements ArgumentsValidator {
|
|||
throwError(type, javaType, functionName, count);
|
||||
}
|
||||
break;
|
||||
case SPATIAL:
|
||||
if ( !isSpatialType( code ) ) {
|
||||
throwError( type, javaType, functionName, count );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -82,5 +82,10 @@ public enum FunctionParameterType {
|
|||
/**
|
||||
* @see org.hibernate.type.SqlTypes#isCharacterOrClobType(int)
|
||||
*/
|
||||
STRING_OR_CLOB
|
||||
STRING_OR_CLOB,
|
||||
/**
|
||||
* Indicates that the argument should be a spatial type
|
||||
* @see org.hibernate.type.SqlTypes#isSpatialType(int)
|
||||
*/
|
||||
SPATIAL
|
||||
}
|
||||
|
|
|
@ -752,4 +752,20 @@ public class SqlTypes {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the typecode represent a spatial (Geometry or Geography) type.
|
||||
*
|
||||
* @param typeCode - a JDBC type code
|
||||
*/
|
||||
public static boolean isSpatialType(int typeCode) {
|
||||
switch ( typeCode ) {
|
||||
case GEOMETRY:
|
||||
case POINT:
|
||||
case GEOGRAPHY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue