[jOOQ/jOOQ#14132] Code generator shouldn't generate precision on

non-decimal types
This commit is contained in:
Lukas Eder 2022-10-26 11:00:34 +02:00
parent 532f1a5402
commit ea3c4590b3

View File

@ -8087,14 +8087,16 @@ public class JavaGenerator extends AbstractGenerator {
String precision = "";
String scale = "";
if (column.getType(resolver(out)).getLength() > 0) {
length = ", length = " + column.getType(resolver(out)).getLength();
DataTypeDefinition type = column.getType(resolver(out));
DataType<?> t = getRuntimeDataType(type);
if (t.hasLength() && type.getLength() > 0) {
length = ", length = " + type.getLength();
}
else if (column.getType(resolver(out)).getPrecision() > 0) {
precision = ", precision = " + column.getType(resolver(out)).getPrecision();
else if (t.hasPrecision() && type.getPrecision() > 0) {
precision = ", precision = " + type.getPrecision();
if (column.getType(resolver(out)).getScale() > 0) {
scale = ", scale = " + column.getType(resolver(out)).getScale();
if (t.hasScale() && type.getScale() > 0) {
scale = ", scale = " + type.getScale();
}
}
@ -9468,6 +9470,15 @@ public class JavaGenerator extends AbstractGenerator {
);
}
private DataType<?> getRuntimeDataType(DataTypeDefinition type) {
try {
return mapTypes(getDataType(type.getDatabase(), type.getType(), type.getPrecision(), type.getScale()));
}
catch (SQLDialectNotSupportedException ignore) {
return SQLDataType.OTHER;
}
}
/**
* @deprecated - 3.9.0 - [#330] - Use {@link #getType(Database, SchemaDefinition, String, int, int, Name, String, String)} instead.
*/