Merge branch 'master' of https://gitbox.apache.org/repos/asf/empire-db
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java b/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
index 2d1c266..0d70f12 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
@@ -56,12 +56,14 @@
* @return the (possibly wrapped) value
*/
protected Object getCmdParamValue(Object value)
- {
+ {
+ // check null
+ if (value == null)
+ return null;
+ // check type
switch (type)
{
case BLOB:
- if (value == null)
- return null;
if (value instanceof DBBlobData)
return value;
if (value instanceof byte[])
@@ -69,8 +71,6 @@
// create a blob data
return new DBBlobData(value.toString());
case CLOB:
- if (value == null)
- return null;
if (value instanceof DBClobData)
return value;
// create a clob data
@@ -78,6 +78,13 @@
case BOOL:
return ObjectUtils.getBoolean(value);
default:
+ // check for enum
+ if (value.getClass().isEnum())
+ { // convert enum
+ Enum<?> enumValue = ((Enum<?>)value);
+ return (type.isNumeric() ? enumValue.ordinal() : enumValue.name());
+ }
+ // use as is
return value;
}
}