EMPIREDB-346
another fix
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java b/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
index bd23db7..934e72a 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
@@ -715,6 +715,7 @@
{
if (value instanceof Enum<?>)
{ // convert enum
+ log.warn("Enum of type {} supplied for getValueString. Converting value...", value.getClass().getName());
value = ObjectUtils.getEnumValue((Enum<?>)value, type.isNumeric());
}
if (ObjectUtils.isEmpty(value))
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
index 214a503..9161fa9 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBValueExpr.java
@@ -192,10 +192,14 @@
((DBExpr)value).addSQL(buf, context);
}
else
- { DataType dataType = getDataType();
+ { // unpack
+ DataType dataType = getDataType();
+ Object dataValue = value;
+ if (dataValue instanceof Enum<?>)
+ dataValue = ObjectUtils.getEnumValue((Enum<?>)dataValue, dataType.isNumeric());
// convert value to sql literal
DBDatabaseDriver driver = db.getDriver();
- String text = (driver!=null) ? driver.getValueString(value, dataType) : ObjectUtils.getString(value);
+ String text = (driver!=null) ? driver.getValueString(dataValue, dataType) : ObjectUtils.getString(dataValue);
buf.append(text);
}
}