in empire-db/src/main/java/org/apache/empire/db/DBDatabase.java [557:597]
public Class<?> getColumnJavaType(DBColumnExpr expr)
{
switch(expr.getDataType())
{
case AUTOINC:
return Long.class;
case INTEGER:
{ // Check Integer size
DBColumn source = expr.getUpdateColumn();
int size = (source!=null ? (int)source.getSize() : DBTable.INT_SIZE_BIG);
if (size<=DBTable.INT_SIZE_SMALL)
return Short.class;
if (size<=DBTable.INT_SIZE_MEDIUM)
return Integer.class;
// Default to Long
return Long.class;
}
case VARCHAR:
case CLOB:
case CHAR:
return String.class;
case DATE:
return (legacyDate ? Date.class : LocalDate.class);
case TIME:
return (legacyDate ? Date.class : LocalTime.class);
case DATETIME:
return (legacyDate ? Date.class : LocalDateTime.class);
case TIMESTAMP:
return Timestamp.class;
case FLOAT:
return Double.class;
case DECIMAL:
return java.math.BigDecimal.class;
case BOOL:
return Boolean.class;
case BLOB:
return byte[].class;
default:
return Object.class;
}
}