Fix for #151 - IllegalArgumentException using enum in filter - toBeanType() throws

This commit is contained in:
Rob Bygrave
2014-06-24 00:04:32 +12:00
parent df526b8f3c
commit 0b2ba2a82e
5 changed files with 84 additions and 12 deletions
@@ -103,13 +103,12 @@ public class ScalarTypeEnumStandard {
return ((Enum<?>)beanValue).toString();
}
public Object toBeanType(Object dbValue) {
if (dbValue == null) {
return null;
}
return Enum.valueOf(enumType, (String)dbValue);
}
public Object toBeanType(Object dbValue) {
if (dbValue == null || dbValue instanceof Enum<?>) {
return dbValue;
}
return Enum.valueOf(enumType, (String) dbValue);
}
}
@@ -183,8 +182,8 @@ public class ScalarTypeEnumStandard {
* Convert the db value to the Enum value.
*/
public Object toBeanType(Object dbValue) {
if (dbValue == null) {
return null;
if (dbValue == null || dbValue instanceof Enum<?>) {
return dbValue;
}
int ordinal = ((Integer)dbValue).intValue();
@@ -72,6 +72,9 @@ public class ScalarTypeEnumWithMapping extends ScalarTypeEnumStandard.EnumBase i
}
public Object toBeanType(Object dbValue) {
if (dbValue == null || dbValue instanceof Enum<?>) {
return dbValue;
}
return beanDbMap.getBeanValue(dbValue);
}