Index: C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/config/PropertyRegistry.java =================================================================== --- C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/config/PropertyRegistry.java (revision 652935) +++ C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/config/PropertyRegistry.java (working copy) @@ -42,7 +42,8 @@ public static final String TABLE_USE_ACTUAL_COLUMN_NAMES = "useActualColumnNames"; //$NON-NLS-1$ public static final String TABLE_IGNORE_QUALIFIERS_AT_RUNTIME = "ignoreQualifiersAtRuntime"; //$NON-NLS-1$ public static final String TABLE_RUNTIME_TABLE_NAME = "runtimeTableName"; //$NON-NLS-1$ - + public static final String TABLE_RUNTIME_SCHEMA_NAME = "runtimeSchemaName"; //$NON-NLS-1$ + public static final String CONTEXT_SUPPRESS_TYPE_WARNINGS = "suppressTypeWarnings"; //$NON-NLS-1$ public static final String CONTEXT_BEGINNING_DELIMITER = "beginningDelimiter"; //$NON-NLS-1$ public static final String CONTEXT_ENDING_DELIMITER = "endingDelimiter"; //$NON-NLS-1$ Index: C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java =================================================================== --- C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java (revision 652935) +++ C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java (working copy) @@ -32,6 +32,8 @@ private String tableName; + private String runtimeSchemaName; + private String runtimeTableName; private String domainObjectName; @@ -86,7 +88,8 @@ */ public FullyQualifiedTable(String catalog, String schema, String tableName, String domainObjectName, String alias, boolean ignoreQualifiersAtRuntime, - String runtimeTableName, boolean delimitIdentifiers, IbatorContext ibatorContext) { + String runtimeTableName, String runtimeSchemaName, boolean delimitIdentifiers, + IbatorContext ibatorContext) { super(); this.catalog = catalog; this.schema = schema; @@ -94,6 +97,7 @@ this.domainObjectName = domainObjectName; this.ignoreQualifiersAtRuntime = ignoreQualifiersAtRuntime; this.runtimeTableName = runtimeTableName; + this.runtimeSchemaName = runtimeSchemaName; if (alias == null) { this.alias = null; @@ -129,7 +133,11 @@ } if (StringUtility.stringHasValue(schema) && !ignoreQualifiersAtRuntime) { - localSchema = beginningDelimiter + schema + endingDelimiter; + if (StringUtility.stringHasValue(runtimeSchemaName)) { + localSchema = beginningDelimiter + runtimeSchemaName + endingDelimiter; + } else { + localSchema = beginningDelimiter + schema + endingDelimiter; + } } else { localSchema = null; } @@ -166,9 +174,11 @@ * @return */ public String getSqlMapNamespace() { + String schemaName = StringUtility.stringHasValue(runtimeSchemaName) ? runtimeSchemaName : schema; + return StringUtility.composeFullyQualifiedTableName( ignoreQualifiersAtRuntime ? null : catalog, - ignoreQualifiersAtRuntime ? null : schema, + ignoreQualifiersAtRuntime ? null : schemaName, StringUtility.stringHasValue(runtimeTableName) ? runtimeTableName : tableName, '_'); } @@ -235,7 +245,11 @@ sb.append(catalog.toLowerCase()); } - if (StringUtility.stringHasValue(schema)) { + if (StringUtility.stringHasValue(runtimeSchemaName)) { + sb.append('.'); + sb.append(runtimeSchemaName.toLowerCase()); + } + else if (StringUtility.stringHasValue(schema)) { sb.append('.'); sb.append(schema.toLowerCase()); } Index: C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/internal/db/DatabaseIntrospector.java =================================================================== --- C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/internal/db/DatabaseIntrospector.java (revision 652935) +++ C:/Workspace/ibator/core/src/org/apache/ibatis/ibator/internal/db/DatabaseIntrospector.java (working copy) @@ -453,6 +453,7 @@ tc.getAlias(), "true".equalsIgnoreCase(tc.getProperty(PropertyRegistry.TABLE_IGNORE_QUALIFIERS_AT_RUNTIME)), //$NON-NLS-1$ tc.getProperty(PropertyRegistry.TABLE_RUNTIME_TABLE_NAME), + tc.getProperty(PropertyRegistry.TABLE_RUNTIME_SCHEMA_NAME), delimitIdentifiers, ibatorContext);