org.mybatis.generator.config.ColumnOverride Java Examples

The following examples show how to use org.mybatis.generator.config.ColumnOverride. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DatabaseIntrospector.java    From mapper-generator-javafx with Apache License 2.0 5 votes vote down vote up
private void reportIntrospectionWarnings(
        IntrospectedTable introspectedTable,
        TableConfiguration tableConfiguration, FullyQualifiedTable table) {
    // make sure that every column listed in column overrides
    // actually exists in the table
    for (ColumnOverride columnOverride : tableConfiguration
            .getColumnOverrides()) {
        if (!introspectedTable.getColumn(columnOverride.getColumnName()).isPresent()) {
            warnings.add(getString("Warning.3",
                    columnOverride.getColumnName(), table.toString()));
        }
    }

    // make sure that every column listed in ignored columns
    // actually exists in the table
    for (String string : tableConfiguration.getIgnoredColumnsInError()) {
        warnings.add(getString("Warning.4",
                string, table.toString()));
    }

    GeneratedKey generatedKey = tableConfiguration.getGeneratedKey();
    if (generatedKey != null
            && !introspectedTable.getColumn(generatedKey.getColumn()).isPresent()) {
        if (generatedKey.isIdentity()) {
            warnings.add(getString("Warning.5",
                    generatedKey.getColumn(), table.toString()));
        } else {
            warnings.add(getString("Warning.6",
                    generatedKey.getColumn(), table.toString()));
        }
    }

    for (IntrospectedColumn ic : introspectedTable.getAllColumns()) {
        if (JavaReservedWords.containsWord(ic.getJavaProperty())) {
            warnings.add(getString("Warning.26",
                    ic.getActualColumnName(), table.toString()));
        }
    }
}
 
Example #2
Source File: DatabaseIntrospector.java    From mybatis-generator-plus with Apache License 2.0 5 votes vote down vote up
private void reportIntrospectionWarnings(
        IntrospectedTable introspectedTable,
        TableConfiguration tableConfiguration, FullyQualifiedTable table) {
    // make sure that every column listed in column overrides
    // actually exists in the table
    for (ColumnOverride columnOverride : tableConfiguration
            .getColumnOverrides()) {
        if (introspectedTable.getColumn(columnOverride.getColumnName()) == null) {
            warnings.add(getString("Warning.3", //$NON-NLS-1$
                    columnOverride.getColumnName(), table.toString()));
        }
    }

    // make sure that every column listed in ignored columns
    // actually exists in the table
    for (String string : tableConfiguration.getIgnoredColumnsInError()) {
        warnings.add(getString("Warning.4", //$NON-NLS-1$
                string, table.toString()));
    }

    GeneratedKey generatedKey = tableConfiguration.getGeneratedKey();
    if (generatedKey != null
            && introspectedTable.getColumn(generatedKey.getColumn()) == null) {
        if (generatedKey.isIdentity()) {
            warnings.add(getString("Warning.5", //$NON-NLS-1$
                    generatedKey.getColumn(), table.toString()));
        } else {
            warnings.add(getString("Warning.6", //$NON-NLS-1$
                    generatedKey.getColumn(), table.toString()));
        }
    }
}
 
Example #3
Source File: DatabaseIntrospector.java    From mapper-generator-javafx with Apache License 2.0 4 votes vote down vote up
private void calculateExtraColumnInformation(TableConfiguration tc,
        Map<ActualTableName, List<IntrospectedColumn>> columns) {
    StringBuilder sb = new StringBuilder();
    Pattern pattern = null;
    String replaceString = null;
    if (tc.getColumnRenamingRule() != null) {
        pattern = Pattern.compile(tc.getColumnRenamingRule()
                .getSearchString());
        replaceString = tc.getColumnRenamingRule().getReplaceString();
        replaceString = replaceString == null ? "" : replaceString;
    }

    for (Map.Entry<ActualTableName, List<IntrospectedColumn>> entry : columns
            .entrySet()) {
        for (IntrospectedColumn introspectedColumn : entry.getValue()) {
            String calculatedColumnName;
            if (pattern == null) {
                calculatedColumnName = introspectedColumn
                        .getActualColumnName();
            } else {
                Matcher matcher = pattern.matcher(introspectedColumn
                        .getActualColumnName());
                calculatedColumnName = matcher.replaceAll(replaceString);
            }

            if (isTrue(tc
                    .getProperty(PropertyRegistry.TABLE_USE_ACTUAL_COLUMN_NAMES))) {
                introspectedColumn.setJavaProperty(
                        JavaBeansUtil.getValidPropertyName(calculatedColumnName));
            } else if (isTrue(tc
                            .getProperty(PropertyRegistry.TABLE_USE_COMPOUND_PROPERTY_NAMES))) {
                sb.setLength(0);
                sb.append(calculatedColumnName);
                sb.append('_');
                sb.append(JavaBeansUtil.getCamelCaseString(
                        introspectedColumn.getRemarks(), true));
                introspectedColumn.setJavaProperty(
                        JavaBeansUtil.getValidPropertyName(sb.toString()));
            } else {
                introspectedColumn.setJavaProperty(
                        JavaBeansUtil.getCamelCaseString(calculatedColumnName, false));
            }

            FullyQualifiedJavaType fullyQualifiedJavaType = javaTypeResolver
                    .calculateJavaType(introspectedColumn);

            if (fullyQualifiedJavaType != null) {
                introspectedColumn
                        .setFullyQualifiedJavaType(fullyQualifiedJavaType);
                introspectedColumn.setJdbcTypeName(javaTypeResolver
                        .calculateJdbcTypeName(introspectedColumn));
            } else {
                // type cannot be resolved. Check for ignored or overridden
                boolean warn = true;
                if (tc.isColumnIgnored(introspectedColumn
                        .getActualColumnName())) {
                    warn = false;
                }

                ColumnOverride co = tc.getColumnOverride(introspectedColumn
                        .getActualColumnName());
                if (co != null
                        && stringHasValue(co.getJavaType())) {
                    warn = false;
                }

                // if the type is not supported, then we'll report a warning
                if (warn) {
                    introspectedColumn
                            .setFullyQualifiedJavaType(FullyQualifiedJavaType
                                    .getObjectInstance());
                    introspectedColumn.setJdbcTypeName("OTHER");

                    String warning = getString("Warning.14",
                            Integer.toString(introspectedColumn.getJdbcType()),
                            entry.getKey().toString(),
                            introspectedColumn.getActualColumnName());

                    warnings.add(warning);
                }
            }

            if (context.autoDelimitKeywords()
                    && SqlReservedWords.containsWord(introspectedColumn
                        .getActualColumnName())) {
                introspectedColumn.setColumnNameDelimited(true);
            }

            if (tc.isAllColumnDelimitingEnabled()) {
                introspectedColumn.setColumnNameDelimited(true);
            }
        }
    }
}
 
Example #4
Source File: DatabaseIntrospector.java    From mapper-generator-javafx with Apache License 2.0 4 votes vote down vote up
private void applyColumnOverrides(TableConfiguration tc,
        Map<ActualTableName, List<IntrospectedColumn>> columns) {
    for (Map.Entry<ActualTableName, List<IntrospectedColumn>> entry : columns
            .entrySet()) {
        for (IntrospectedColumn introspectedColumn : entry.getValue()) {
            ColumnOverride columnOverride = tc
                    .getColumnOverride(introspectedColumn
                            .getActualColumnName());

            if (columnOverride != null) {
                if (logger.isDebugEnabled()) {
                    logger.debug(getString("Tracing.4",
                            introspectedColumn.getActualColumnName(), entry
                                    .getKey().toString()));
                }

                if (stringHasValue(columnOverride
                        .getJavaProperty())) {
                    introspectedColumn.setJavaProperty(columnOverride
                            .getJavaProperty());
                }

                if (stringHasValue(columnOverride
                        .getJavaType())) {
                    introspectedColumn
                            .setFullyQualifiedJavaType(new FullyQualifiedJavaType(
                                    columnOverride.getJavaType()));
                }

                if (stringHasValue(columnOverride
                        .getJdbcType())) {
                    introspectedColumn.setJdbcTypeName(columnOverride
                            .getJdbcType());
                }

                if (stringHasValue(columnOverride
                        .getTypeHandler())) {
                    introspectedColumn.setTypeHandler(columnOverride
                            .getTypeHandler());
                }

                if (columnOverride.isColumnNameDelimited()) {
                    introspectedColumn.setColumnNameDelimited(true);
                }

                introspectedColumn.setGeneratedAlways(columnOverride.isGeneratedAlways());

                introspectedColumn.setProperties(columnOverride
                        .getProperties());

            }
        }
    }
}
 
Example #5
Source File: MyBatisGeneratorConfigurationParser.java    From mapper-generator-javafx with Apache License 2.0 4 votes vote down vote up
private void parseColumnOverride(TableConfiguration tc, Node node) {
    Properties attributes = parseAttributes(node);
    String column = attributes.getProperty("column");

    ColumnOverride co = new ColumnOverride(column);

    String property = attributes.getProperty("property");
    if (stringHasValue(property)) {
        co.setJavaProperty(property);
    }

    String javaType = attributes.getProperty("javaType");
    if (stringHasValue(javaType)) {
        co.setJavaType(javaType);
    }

    String jdbcType = attributes.getProperty("jdbcType");
    if (stringHasValue(jdbcType)) {
        co.setJdbcType(jdbcType);
    }

    String typeHandler = attributes.getProperty("typeHandler");
    if (stringHasValue(typeHandler)) {
        co.setTypeHandler(typeHandler);
    }

    String delimitedColumnName = attributes
            .getProperty("delimitedColumnName");
    if (stringHasValue(delimitedColumnName)) {
        co.setColumnNameDelimited(isTrue(delimitedColumnName));
    }

    String isGeneratedAlways = attributes.getProperty("isGeneratedAlways");
    if (stringHasValue(isGeneratedAlways)) {
        co.setGeneratedAlways(Boolean.parseBoolean(isGeneratedAlways));
    }

    NodeList nodeList = node.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = nodeList.item(i);

        if (childNode.getNodeType() != Node.ELEMENT_NODE) {
            continue;
        }

        if ("property".equals(childNode.getNodeName())) {
            parseProperty(co, childNode);
        }
    }

    tc.addColumnOverride(co);
}
 
Example #6
Source File: IbatorConfigurationParser.java    From mybatis-generator-core-fix with Apache License 2.0 4 votes vote down vote up
private void parseColumnOverride(TableConfiguration tc, Node node) {
    Properties attributes = parseAttributes(node);
    String column = attributes.getProperty("column"); //$NON-NLS-1$
    String property = attributes.getProperty("property"); //$NON-NLS-1$
    String javaType = attributes.getProperty("javaType"); //$NON-NLS-1$
    String jdbcType = attributes.getProperty("jdbcType"); //$NON-NLS-1$
    String typeHandler = attributes.getProperty("typeHandler"); //$NON-NLS-1$
    String delimitedColumnName = attributes
            .getProperty("delimitedColumnName"); //$NON-NLS-1$

    ColumnOverride co = new ColumnOverride(column);

    if (stringHasValue(property)) {
        co.setJavaProperty(property);
    }

    if (stringHasValue(javaType)) {
        co.setJavaType(javaType);
    }

    if (stringHasValue(jdbcType)) {
        co.setJdbcType(jdbcType);
    }

    if (stringHasValue(typeHandler)) {
        co.setTypeHandler(typeHandler);
    }

    if (stringHasValue(delimitedColumnName)) {
        co.setColumnNameDelimited(isTrue(delimitedColumnName));
    }

    NodeList nodeList = node.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = nodeList.item(i);

        if (childNode.getNodeType() != Node.ELEMENT_NODE) {
            continue;
        }

        if ("property".equals(childNode.getNodeName())) { //$NON-NLS-1$
            parseProperty(co, childNode);
        }
    }

    tc.addColumnOverride(co);
}
 
Example #7
Source File: MyBatisGeneratorConfigurationParser.java    From mybatis-generator-core-fix with Apache License 2.0 4 votes vote down vote up
private void parseColumnOverride(TableConfiguration tc, Node node) {
    Properties attributes = parseAttributes(node);
    String column = attributes.getProperty("column"); //$NON-NLS-1$
    String property = attributes.getProperty("property"); //$NON-NLS-1$
    String javaType = attributes.getProperty("javaType"); //$NON-NLS-1$
    String jdbcType = attributes.getProperty("jdbcType"); //$NON-NLS-1$
    String typeHandler = attributes.getProperty("typeHandler"); //$NON-NLS-1$
    String delimitedColumnName = attributes
            .getProperty("delimitedColumnName"); //$NON-NLS-1$

    ColumnOverride co = new ColumnOverride(column);

    if (stringHasValue(property)) {
        co.setJavaProperty(property);
    }

    if (stringHasValue(javaType)) {
        co.setJavaType(javaType);
    }

    if (stringHasValue(jdbcType)) {
        co.setJdbcType(jdbcType);
    }

    if (stringHasValue(typeHandler)) {
        co.setTypeHandler(typeHandler);
    }

    if (stringHasValue(delimitedColumnName)) {
        co.setColumnNameDelimited(isTrue(delimitedColumnName));
    }

    NodeList nodeList = node.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = nodeList.item(i);

        if (childNode.getNodeType() != Node.ELEMENT_NODE) {
            continue;
        }

        if ("property".equals(childNode.getNodeName())) { //$NON-NLS-1$
            parseProperty(co, childNode);
        }
    }

    tc.addColumnOverride(co);
}
 
Example #8
Source File: DatabaseIntrospector.java    From mybatis-generator-plus with Apache License 2.0 4 votes vote down vote up
private void calculateExtraColumnInformation(TableConfiguration tc,
        Map<ActualTableName, List<IntrospectedColumn>> columns) {
    StringBuilder sb = new StringBuilder();
    Pattern pattern = null;
    String replaceString = null;
    if (tc.getColumnRenamingRule() != null) {
        pattern = Pattern.compile(tc.getColumnRenamingRule()
                .getSearchString());
        replaceString = tc.getColumnRenamingRule().getReplaceString();
        replaceString = replaceString == null ? "" : replaceString; //$NON-NLS-1$
    }

    for (Map.Entry<ActualTableName, List<IntrospectedColumn>> entry : columns
            .entrySet()) {
        for (IntrospectedColumn introspectedColumn : entry.getValue()) {
            String calculatedColumnName;
            if (pattern == null) {
                calculatedColumnName = introspectedColumn
                        .getActualColumnName();
            } else {
                Matcher matcher = pattern.matcher(introspectedColumn
                        .getActualColumnName());
                calculatedColumnName = matcher.replaceAll(replaceString);
            }

            if (isTrue(tc
                    .getProperty(PropertyRegistry.TABLE_USE_ACTUAL_COLUMN_NAMES))) {
                introspectedColumn.setJavaProperty(
                        getValidPropertyName(calculatedColumnName));
            } else if (isTrue(tc
                            .getProperty(PropertyRegistry.TABLE_USE_COMPOUND_PROPERTY_NAMES))) {
                sb.setLength(0);
                sb.append(calculatedColumnName);
                sb.append('_');
                sb.append(getCamelCaseString(
                        introspectedColumn.getRemarks(), true));
                introspectedColumn.setJavaProperty(
                        getValidPropertyName(sb.toString()));
            } else {
                introspectedColumn.setJavaProperty(
                        getCamelCaseString(calculatedColumnName, false));
            }

            FullyQualifiedJavaType fullyQualifiedJavaType = javaTypeResolver
                    .calculateJavaType(introspectedColumn);

            if (fullyQualifiedJavaType != null) {
                introspectedColumn
                        .setFullyQualifiedJavaType(fullyQualifiedJavaType);
                introspectedColumn.setJdbcTypeName(javaTypeResolver
                        .calculateJdbcTypeName(introspectedColumn));
            } else {
                // type cannot be resolved. Check for ignored or overridden
                boolean warn = true;
                if (tc.isColumnIgnored(introspectedColumn
                        .getActualColumnName())) {
                    warn = false;
                }

                ColumnOverride co = tc.getColumnOverride(introspectedColumn
                        .getActualColumnName());
                if (co != null) {
                    if (stringHasValue(co.getJavaType())
                            && stringHasValue(co.getJavaType())) {
                        warn = false;
                    }
                }

                // if the type is not supported, then we'll report a warning
                if (warn) {
                    introspectedColumn
                            .setFullyQualifiedJavaType(FullyQualifiedJavaType
                                    .getObjectInstance());
                    introspectedColumn.setJdbcTypeName("OTHER"); //$NON-NLS-1$

                    String warning = getString("Warning.14", //$NON-NLS-1$
                            Integer.toString(introspectedColumn.getJdbcType()),
                            entry.getKey().toString(),
                            introspectedColumn.getActualColumnName());

                    warnings.add(warning);
                }
            }

            if (context.autoDelimitKeywords()) {
                if (SqlReservedWords.containsWord(introspectedColumn
                        .getActualColumnName())) {
                    introspectedColumn.setColumnNameDelimited(true);
                }
            }

            if (tc.isAllColumnDelimitingEnabled()) {
                introspectedColumn.setColumnNameDelimited(true);
            }
        }
    }
}
 
Example #9
Source File: DatabaseIntrospector.java    From mybatis-generator-plus with Apache License 2.0 4 votes vote down vote up
private void applyColumnOverrides(TableConfiguration tc,
        Map<ActualTableName, List<IntrospectedColumn>> columns) {
    for (Map.Entry<ActualTableName, List<IntrospectedColumn>> entry : columns
            .entrySet()) {
        for (IntrospectedColumn introspectedColumn : entry.getValue()) {
            ColumnOverride columnOverride = tc
                    .getColumnOverride(introspectedColumn
                            .getActualColumnName());

            if (columnOverride != null) {
                if (logger.isDebugEnabled()) {
                    logger.debug(getString("Tracing.4", //$NON-NLS-1$
                            introspectedColumn.getActualColumnName(), entry
                                    .getKey().toString()));
                }

                if (stringHasValue(columnOverride
                        .getJavaProperty())) {
                    introspectedColumn.setJavaProperty(columnOverride
                            .getJavaProperty());
                }

                if (stringHasValue(columnOverride
                        .getJavaType())) {
                    introspectedColumn
                            .setFullyQualifiedJavaType(new FullyQualifiedJavaType(
                                    columnOverride.getJavaType()));
                }

                if (stringHasValue(columnOverride
                        .getJdbcType())) {
                    introspectedColumn.setJdbcTypeName(columnOverride
                            .getJdbcType());
                }

                if (stringHasValue(columnOverride
                        .getTypeHandler())) {
                    introspectedColumn.setTypeHandler(columnOverride
                            .getTypeHandler());
                }

                if (columnOverride.isColumnNameDelimited()) {
                    introspectedColumn.setColumnNameDelimited(true);
                }

                introspectedColumn.setProperties(columnOverride
                        .getProperties());
            }
        }
    }
}
 
Example #10
Source File: IbatorConfigurationParser.java    From mybatis-generator-plus with Apache License 2.0 4 votes vote down vote up
private void parseColumnOverride(TableConfiguration tc, Node node) {
    Properties attributes = parseAttributes(node);
    String column = attributes.getProperty("column"); //$NON-NLS-1$
    String property = attributes.getProperty("property"); //$NON-NLS-1$
    String javaType = attributes.getProperty("javaType"); //$NON-NLS-1$
    String jdbcType = attributes.getProperty("jdbcType"); //$NON-NLS-1$
    String typeHandler = attributes.getProperty("typeHandler"); //$NON-NLS-1$
    String delimitedColumnName = attributes
            .getProperty("delimitedColumnName"); //$NON-NLS-1$

    ColumnOverride co = new ColumnOverride(column);

    if (stringHasValue(property)) {
        co.setJavaProperty(property);
    }

    if (stringHasValue(javaType)) {
        co.setJavaType(javaType);
    }

    if (stringHasValue(jdbcType)) {
        co.setJdbcType(jdbcType);
    }

    if (stringHasValue(typeHandler)) {
        co.setTypeHandler(typeHandler);
    }

    if (stringHasValue(delimitedColumnName)) {
        co.setColumnNameDelimited(isTrue(delimitedColumnName));
    }

    NodeList nodeList = node.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = nodeList.item(i);

        if (childNode.getNodeType() != Node.ELEMENT_NODE) {
            continue;
        }

        if ("property".equals(childNode.getNodeName())) { //$NON-NLS-1$
            parseProperty(co, childNode);
        }
    }

    tc.addColumnOverride(co);
}
 
Example #11
Source File: MyBatisGeneratorConfigurationParser.java    From mybatis-generator-plus with Apache License 2.0 4 votes vote down vote up
private void parseColumnOverride(TableConfiguration tc, Node node) {
    Properties attributes = parseAttributes(node);
    String column = attributes.getProperty("column"); //$NON-NLS-1$
    String property = attributes.getProperty("property"); //$NON-NLS-1$
    String javaType = attributes.getProperty("javaType"); //$NON-NLS-1$
    String jdbcType = attributes.getProperty("jdbcType"); //$NON-NLS-1$
    String typeHandler = attributes.getProperty("typeHandler"); //$NON-NLS-1$
    String delimitedColumnName = attributes
            .getProperty("delimitedColumnName"); //$NON-NLS-1$

    ColumnOverride co = new ColumnOverride(column);

    if (stringHasValue(property)) {
        co.setJavaProperty(property);
    }

    if (stringHasValue(javaType)) {
        co.setJavaType(javaType);
    }

    if (stringHasValue(jdbcType)) {
        co.setJdbcType(jdbcType);
    }

    if (stringHasValue(typeHandler)) {
        co.setTypeHandler(typeHandler);
    }

    if (stringHasValue(delimitedColumnName)) {
        co.setColumnNameDelimited(isTrue(delimitedColumnName));
    }

    NodeList nodeList = node.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = nodeList.item(i);

        if (childNode.getNodeType() != Node.ELEMENT_NODE) {
            continue;
        }

        if ("property".equals(childNode.getNodeName())) { //$NON-NLS-1$
            parseProperty(co, childNode);
        }
    }

    tc.addColumnOverride(co);
}