[jdbc] Fixed ClassCastException (#9296)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
This commit is contained in:
committed by
GitHub
parent
ade041d5f0
commit
7e9b27ec41
@@ -391,10 +391,10 @@ public class JdbcBaseDAO {
|
|||||||
String itemType = getItemType(item);
|
String itemType = getItemType(item);
|
||||||
|
|
||||||
logger.debug("JDBC::storeItemValueProvider: item '{}' as Type '{}' in '{}' with state '{}'", item.getName(),
|
logger.debug("JDBC::storeItemValueProvider: item '{}' as Type '{}' in '{}' with state '{}'", item.getName(),
|
||||||
itemType, vo.getTableName(), item.getState().toString());
|
itemType, vo.getTableName(), item.getState());
|
||||||
|
|
||||||
// insertItemValue
|
// insertItemValue
|
||||||
logger.debug("JDBC::storeItemValueProvider: getState: '{}'", item.getState().toString());
|
logger.debug("JDBC::storeItemValueProvider: getState: '{}'", item.getState());
|
||||||
if ("COLORITEM".equals(itemType)) {
|
if ("COLORITEM".equals(itemType)) {
|
||||||
vo.setValueTypes(getSqlTypes().get(itemType), java.lang.String.class);
|
vo.setValueTypes(getSqlTypes().get(itemType), java.lang.String.class);
|
||||||
vo.setValue(item.getState().toString());
|
vo.setValue(item.getState().toString());
|
||||||
@@ -407,9 +407,9 @@ public class JdbcBaseDAO {
|
|||||||
vo.setValue(newVal.doubleValue());
|
vo.setValue(newVal.doubleValue());
|
||||||
} else if (it.toUpperCase().contains("DECIMAL") || it.toUpperCase().contains("NUMERIC")) {
|
} else if (it.toUpperCase().contains("DECIMAL") || it.toUpperCase().contains("NUMERIC")) {
|
||||||
vo.setValueTypes(it, java.math.BigDecimal.class);
|
vo.setValueTypes(it, java.math.BigDecimal.class);
|
||||||
DecimalType newVal = (DecimalType) item.getState();
|
BigDecimal newVal = BigDecimal.valueOf(((Number) item.getState()).doubleValue());
|
||||||
logger.debug("JDBC::storeItemValueProvider: newVal.toBigDecimal: '{}'", newVal.toBigDecimal());
|
logger.debug("JDBC::storeItemValueProvider: newVal.toBigDecimal: '{}'", newVal);
|
||||||
vo.setValue(newVal.toBigDecimal());
|
vo.setValue(newVal);
|
||||||
} else if (it.toUpperCase().contains("INT")) {
|
} else if (it.toUpperCase().contains("INT")) {
|
||||||
vo.setValueTypes(it, java.lang.Integer.class);
|
vo.setValueTypes(it, java.lang.Integer.class);
|
||||||
Number newVal = (Number) item.getState();
|
Number newVal = (Number) item.getState();
|
||||||
@@ -417,8 +417,7 @@ public class JdbcBaseDAO {
|
|||||||
vo.setValue(newVal.intValue());
|
vo.setValue(newVal.intValue());
|
||||||
} else {// fall back to String
|
} else {// fall back to String
|
||||||
vo.setValueTypes(it, java.lang.String.class);
|
vo.setValueTypes(it, java.lang.String.class);
|
||||||
logger.warn("JDBC::storeItemValueProvider: item.getState().toString(): '{}'",
|
logger.warn("JDBC::storeItemValueProvider: item.getState().toString(): '{}'", item.getState());
|
||||||
item.getState().toString());
|
|
||||||
vo.setValue(item.getState().toString());
|
vo.setValue(item.getState().toString());
|
||||||
}
|
}
|
||||||
} else if ("ROLLERSHUTTERITEM".equals(itemType) || "DIMMERITEM".equals(itemType)) {
|
} else if ("ROLLERSHUTTERITEM".equals(itemType) || "DIMMERITEM".equals(itemType)) {
|
||||||
@@ -449,8 +448,7 @@ public class JdbcBaseDAO {
|
|||||||
*/
|
*/
|
||||||
// All other items should return the best format by default
|
// All other items should return the best format by default
|
||||||
vo.setValueTypes(getSqlTypes().get(itemType), java.lang.String.class);
|
vo.setValueTypes(getSqlTypes().get(itemType), java.lang.String.class);
|
||||||
logger.debug("JDBC::storeItemValueProvider: other: item.getState().toString(): '{}'",
|
logger.debug("JDBC::storeItemValueProvider: other: item.getState().toString(): '{}'", item.getState());
|
||||||
item.getState().toString());
|
|
||||||
vo.setValue(item.getState().toString());
|
vo.setValue(item.getState().toString());
|
||||||
}
|
}
|
||||||
return vo;
|
return vo;
|
||||||
|
|||||||
Reference in New Issue
Block a user