diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java index f5a97491e5..4abb509176 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java @@ -190,7 +190,13 @@ public class DefaultGeneratorStrategy extends AbstractGeneratorStrategy { private String getJavaClassName0(Definition definition, Mode mode) { StringBuilder result = new StringBuilder(); - result.append(StringUtils.toCamelCase(definition.getOutputName())); + // [#4562] Some characters should be treated like underscore + result.append(StringUtils.toCamelCase( + definition.getOutputName() + .replace(' ', '_') + .replace('-', '_') + .replace('.', '_') + )); if (mode == Mode.RECORD) { result.append("Record"); diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java index 2fa5d49f9c..2195939904 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationUtil.java @@ -178,29 +178,19 @@ class GenerationUtil { return "_"; } - boolean uppercaseNext = false; for (int i = 0; i < literal.length(); i++) { char c = literal.charAt(i); if (!Character.isJavaIdentifierPart(c)) { - if ('.' != c) - sb.append(escape(c)); + sb.append(escape(c)); } else if (i == 0 && !Character.isJavaIdentifierStart(literal.charAt(0))) { sb.append("_"); sb.append(c); } else { - if (uppercaseNext) - sb.append(Character.toUpperCase(c)); - else - sb.append(c); + sb.append(c); } - - if ('.' == c) - uppercaseNext = true; - else - uppercaseNext = false; } return sb.toString();