You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by jg...@apache.org on 2007/02/17 07:14:21 UTC
svn commit: r508716 [1/10] - in
/ibatis/trunk/java/mapper/mapper2/tools/abator/core: build/ devlib/ doc/
src/org/apache/ibatis/abator/ant/ src/org/apache/ibatis/abator/api/
src/org/apache/ibatis/abator/config/
src/org/apache/ibatis/abator/internal/db/ ...
Author: jgbutler
Date: Fri Feb 16 22:14:18 2007
New Revision: 508716
URL: http://svn.apache.org/viewvc?view=rev&rev=508716
Log:
Abator: Lots of changes and tests to deal with the cases where column names need to be delimited.
Added:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/devlib/hsqldb1.8.0.7.jar (with props)
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/SqlScriptRunnerTask.java
Removed:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/devlib/hsqldb.jar
Modified:
ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/AbatorAntTask.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/IntrospectedTable.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/ColumnDefinition.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/IntrospectedTableImpl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseLegacyDAOGenerator.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/ExampleClause.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/CreateDB.sql
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/abatorConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/conditional/java2/ConditionalJava2Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/conditional/java2/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/conditional/legacy/ConditionalLegacyTests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/conditional/legacy/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/flat/java2/FlatJava2Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/flat/java2/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/flat/legacy/FlatLegacyTests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/flat/legacy/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/hierarchical/java2/HierarchicalJava2Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/hierarchical/java2/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/hierarchical/legacy/HierarchicalLegacyTests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/execute/hierarchical/legacy/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/CreateDB.sql
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/abatorConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/conditional/java2/ConditionalJava2Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/conditional/java2/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/conditional/java5/ConditionalJava5Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/conditional/java5/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/conditional/legacy/ConditionalLegacyTests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/conditional/legacy/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/flat/java2/FlatJava2Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/flat/java2/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/flat/java5/FlatJava5Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/flat/java5/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/flat/legacy/FlatLegacyTests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/flat/legacy/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/hierarchical/java2/HierarchicalJava2Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/hierarchical/java2/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/hierarchical/java5/HierarchicalJava5Tests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/hierarchical/java5/SqlMapConfig.xml
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/hierarchical/legacy/HierarchicalLegacyTests.java
ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava5/abatortest/execute/hierarchical/legacy/SqlMapConfig.xml
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/build.xml Fri Feb 16 22:14:18 2007
@@ -164,8 +164,18 @@
<mkdir dir="${generated.bin.dir.java2}"/>
<mkdir dir="${generated.bin.dir.java5}"/>
+ <!-- note that the class does not exist until the build runs.
+ Validating Ant editors will complain that the task cannot be
+ found, but it's not really an error. -->
+ <taskdef name="runscript"
+ classname="org.apache.ibatis.abator.ant.SqlScriptRunnerTask">
+ <classpath>
+ <pathelement location="${deploy.files}/abator.jar"/>
+ </classpath>
+ </taskdef>
+
<!-- create the test database -->
- <sql driver="org.hsqldb.jdbcDriver"
+ <runscript driver="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:mem:aname"
userid="sa"
password=""
@@ -274,7 +284,7 @@
<classpath>
<pathelement location="${generated.bin.dir.java2}"/>
<pathelement location="${basedir}/../devlib/ibatis-2.3.0.677.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
</classpath>
</junit>
</target>
@@ -290,7 +300,7 @@
<classpath>
<pathelement location="${generated.bin.dir.java5}"/>
<pathelement location="${basedir}/../devlib/ibatis-2.3.0.677.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
</classpath>
</junit>
</target>
@@ -306,7 +316,7 @@
<classpath>
<pathelement location="${generated.source.dir.java5}"/>
<pathelement location="${basedir}/../devlib/ibatis-2.3.0.677.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
</classpath>
</junit>
@@ -320,7 +330,7 @@
<classpath>
<pathelement location="${generated.source.dir.java2}"/>
<pathelement location="${basedir}/../devlib/ibatis-2.3.0.677.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
</classpath>
</junit>
</target>
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/build/version.properties Fri Feb 16 22:14:18 2007
@@ -1,4 +1,4 @@
#Abator build version info
-#Thu Feb 15 17:37:34 CST 2007
+#Sat Feb 17 00:07:43 CST 2007
version=1.0.1
-buildNum=323
+buildNum=339
Added: ibatis/trunk/java/mapper/mapper2/tools/abator/core/devlib/hsqldb1.8.0.7.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/devlib/hsqldb1.8.0.7.jar?view=auto&rev=508716
==============================================================================
Binary file - no diff available.
Propchange: ibatis/trunk/java/mapper/mapper2/tools/abator/core/devlib/hsqldb1.8.0.7.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/doc/ReleaseNotes.txt Fri Feb 16 22:14:18 2007
@@ -18,6 +18,9 @@
extra Java code or XML elements to any generated object. Will make it
easier to create customized generators
6. Added SYBASE database dialect for generated keys
+7. Added the ability to specify that resultMaps should use column indexes
+ rather than column name. This is necessary in poorly designed tables
+ where column names differ only in case. This may also improve performance.
-------------------------------------------------------------------------------
Version 1.0.0:
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/AbatorAntTask.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/AbatorAntTask.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/AbatorAntTask.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/AbatorAntTask.java Fri Feb 16 22:14:18 2007
@@ -101,10 +101,9 @@
abator.generate(new AntProgressCallback(this, verbose));
} catch (XMLParserException e) {
- List errors = e.getErrors();
- Iterator iter = errors.iterator();
- while (iter.hasNext()) {
- log((String) iter.next(), Project.MSG_ERR);
+ Iterator errors = e.getErrors().iterator();
+ while (errors.hasNext()) {
+ log((String) errors.next(), Project.MSG_ERR);
}
throw new BuildException(e.getMessage());
@@ -113,6 +112,10 @@
} catch (IOException e) {
throw new BuildException(e.getMessage());
} catch (InvalidConfigurationException e) {
+ Iterator errors = e.getErrors().iterator();
+ while (errors.hasNext()) {
+ log((String) errors.next(), Project.MSG_ERR);
+ }
throw new BuildException(e.getMessage());
} catch (InterruptedException e) {
// ignore (will never happen with the DefaultShellCallback)
Added: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/SqlScriptRunnerTask.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/SqlScriptRunnerTask.java?view=auto&rev=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/SqlScriptRunnerTask.java (added)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/ant/SqlScriptRunnerTask.java Fri Feb 16 22:14:18 2007
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2007 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ibatis.abator.ant;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.apache.ibatis.abator.internal.util.StringUtility;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
+
+/**
+ * This task executes an SQL script. It is used during the Abator build
+ * because the built in Ant SQL task treats some of the columns in "awful table"
+ * as properties.
+ *
+ * This task is very simplistic and not intended for general use.
+ *
+ * @author Jeff Butler
+ *
+ */
+public class SqlScriptRunnerTask extends Task {
+
+ private String driver;
+ private String url;
+ private String userid;
+ private String password;
+ private String src;
+
+ public void execute() throws BuildException {
+
+ Connection connection = null;
+
+ try {
+ Class.forName(driver);
+ connection = DriverManager.getConnection(url, userid, password);
+
+ Statement statement = connection.createStatement();
+
+ BufferedReader br = new BufferedReader(new FileReader(src));
+
+ String sql;
+
+ while ((sql = readStatement(br)) != null) {
+ statement.execute(sql);
+ }
+
+ closeStatement(statement);
+ connection.commit();
+ br.close();
+ } catch (Exception e) {
+ throw new BuildException(e.getMessage());
+ } finally {
+ closeConnection(connection);
+ }
+ }
+
+ public String getDriver() {
+ return driver;
+ }
+
+ public void setDriver(String driver) {
+ this.driver = driver;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getSrc() {
+ return src;
+ }
+
+ public void setSrc(String src) {
+ this.src = src;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ private void closeConnection(Connection connection) {
+ if (connection != null) {
+ try {
+ connection.close();
+ } catch (SQLException e) {
+ // ignore
+ ;
+ }
+ }
+ }
+
+ private void closeStatement(Statement statement) {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ // ignore
+ ;
+ }
+ }
+ }
+
+ private String readStatement(BufferedReader br) throws IOException {
+ StringBuffer sb = new StringBuffer();
+
+ String line;
+
+ while ((line = br.readLine()) != null) {
+ if (line.startsWith("--")) {
+ continue;
+ }
+
+ if (!StringUtility.stringHasValue(line)) {
+ continue;
+ }
+
+ if (line.endsWith(";")) {
+ sb.append(line.substring(0, line.length() - 1));
+ break;
+ } else {
+ sb.append(line);
+ }
+ }
+
+ String s = sb.toString().trim();
+
+ if (s.length() > 0) {
+ log("Found Statement: " + s, Project.MSG_DEBUG);
+ }
+
+ return s.length() > 0 ? s : null;
+ }
+}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/IntrospectedTable.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/IntrospectedTable.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/IntrospectedTable.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/api/IntrospectedTable.java Fri Feb 16 22:14:18 2007
@@ -85,6 +85,8 @@
*/
Iterator getNonBLOBColumns();
+ int getNonBLOBColumnCount();
+
Iterator getNonPrimaryKeyColumns();
Iterator getBLOBColumns();
@@ -92,4 +94,6 @@
boolean hasBLOBColumns();
AbatorRules getRules();
+
+ String getTableConfigurationProperty(String property);
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/config/AbatorContext.java Fri Feb 16 22:14:18 2007
@@ -207,15 +207,30 @@
errors.add(Messages.getString("ValidationError.6", Integer.toString(listPosition))); //$NON-NLS-1$
}
+ String tableName = StringUtility.composeFullyQualifiedTableName(
+ tc.getCatalog(), tc.getSchema(), tc.getTableName(), '.');
+
if (tc.getGeneratedKey() != null
&& !StringUtility.stringHasValue(tc.getGeneratedKey()
.getRuntimeSqlStatement())) {
- String tableName = StringUtility.composeFullyQualifiedTableName(
- tc.getCatalog(), tc.getSchema(), tc.getTableName(), '.');
errors
.add(Messages.getString("ValidationError.7", //$NON-NLS-1$
tableName));
}
+
+ if ("true".equalsIgnoreCase((String) tc.getProperties().get("useColumnIndexes"))) { //$NON-NLS-1$ //$NON-NLS-2$
+ // when using column indexes, either both or neither query ids should be set
+ if (tc.isSelectByExampleStatementEnabled() && tc.isSelectByPrimaryKeyStatementEnabled()) {
+ boolean queryId1Set = StringUtility.stringHasValue(tc.getSelectByExampleQueryId());
+ boolean queryId2Set = StringUtility.stringHasValue(tc.getSelectByPrimaryKeyQueryId());
+
+ if (queryId1Set != queryId2Set) {
+ errors
+ .add(Messages.getString("ValidationError.13", //$NON-NLS-1$
+ tableName));
+ }
+ }
+ }
}
/**
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/ColumnDefinition.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/ColumnDefinition.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/ColumnDefinition.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/ColumnDefinition.java Fri Feb 16 22:14:18 2007
@@ -32,8 +32,6 @@
public class ColumnDefinition {
private String actualColumnName;
- private String escapedColumnName;
-
private int jdbcType;
private boolean nullable;
@@ -59,27 +57,6 @@
private boolean isColumnNameDelimited;
/**
- * The aliased column name for a select statement. If there
- * is a table alias, the value will be alias.columnName
- */
- private String aliasedActualColumnName;
-
- private String aliasedEscapedColumnName;
-
- /**
- * The renamed column name for a select statement. If there
- * is a table alias, the value will be alias_columnName
- */
- private String renamedColumnNameForResultMap;
-
- /**
- * The phrase to use in a select list. If there
- * is a table alias, the value will be
- * "alias.columnName as alias_columnName"
- */
- private String selectListPhrase;
-
- /**
* Constructs a Column definition. This object holds all the
* information about a column that is required to generate
* Java objects and SQL maps;
@@ -159,42 +136,7 @@
public void setActualColumnName(String actualColumnName) {
this.actualColumnName = actualColumnName;
- this.escapedColumnName = escapeStringForIbatis(actualColumnName);
isColumnNameDelimited = StringUtility.stringContainsSpace(actualColumnName);
-
- if (StringUtility.stringHasValue(tableAlias)) {
- StringBuffer sb = new StringBuffer();
-
- sb.append(tableAlias);
- sb.append('.');
- sb.append(escapedColumnName);
- aliasedEscapedColumnName = sb.toString();
-
- sb.setLength(0);
- sb.append(tableAlias);
- sb.append('.');
- sb.append(actualColumnName);
- aliasedActualColumnName = sb.toString();
-
- sb.setLength(0);
- sb.append(tableAlias);
- sb.append('_');
- sb.append(actualColumnName);
- renamedColumnNameForResultMap = sb.toString();
-
- sb.setLength(0);
- sb.append(aliasedEscapedColumnName);
- sb.append(" as "); //$NON-NLS-1$
- sb.append(tableAlias);
- sb.append('_');
- sb.append(escapedColumnName);
- selectListPhrase = sb.toString();
- } else {
- aliasedActualColumnName = actualColumnName;
- aliasedEscapedColumnName = escapedColumnName;
- renamedColumnNameForResultMap = actualColumnName;
- selectListPhrase = escapedColumnName;
- }
}
/**
@@ -251,12 +193,52 @@
return javaProperty + "_Indicator"; //$NON-NLS-1$
}
+ /**
+ * The renamed column name for a select statement. If there
+ * is a table alias, the value will be alias_columnName. This is
+ * appropriate for use in a result map.
+ *
+ * @return
+ */
public String getRenamedColumnNameForResultMap() {
- return renamedColumnNameForResultMap;
+ if (StringUtility.stringHasValue(tableAlias)) {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append(tableAlias);
+ sb.append('_');
+ sb.append(actualColumnName);
+ return sb.toString();
+ } else {
+ return actualColumnName;
+ }
}
+ /**
+ * The phrase to use in a select list. If there
+ * is a table alias, the value will be
+ * "alias.columnName as alias_columnName"
+ *
+ * @return the proper phrase
+ */
public String getSelectListPhrase() {
- return selectListPhrase;
+ if (StringUtility.stringHasValue(tableAlias)) {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append(getAliasedEscapedColumnName());
+ sb.append(" as "); //$NON-NLS-1$
+ if (isColumnNameDelimited) {
+ sb.append(abatorContext.getBeginningDelimiter());
+ }
+ sb.append(tableAlias);
+ sb.append('_');
+ sb.append(escapeStringForIbatis(actualColumnName));
+ if (isColumnNameDelimited) {
+ sb.append(abatorContext.getEndingDelimiter());
+ }
+ return sb.toString();
+ } else {
+ return getEscapedColumnName();
+ }
}
public boolean isJDBCDateColumn() {
@@ -298,8 +280,8 @@
this.typeHandler = typeHandler;
}
- private String escapeStringForIbatis(String actualColumnName) {
- StringTokenizer st = new StringTokenizer(actualColumnName, "$#", true); //$NON-NLS-1$
+ private String escapeStringForIbatis(String s) {
+ StringTokenizer st = new StringTokenizer(s, "$#", true); //$NON-NLS-1$
StringBuffer sb = new StringBuffer();
while (st.hasMoreTokens()) {
String token = st.nextToken();
@@ -320,15 +302,65 @@
}
public String getEscapedColumnName() {
- return escapedColumnName;
+ StringBuffer sb = new StringBuffer();
+ sb.append(escapeStringForIbatis(actualColumnName));
+
+ if (isColumnNameDelimited) {
+ sb.insert(0, abatorContext.getBeginningDelimiter());
+ sb.append(abatorContext.getEndingDelimiter());
+ }
+
+ return sb.toString();
}
+ /**
+ * The aliased column name for a select statement generated by the example clauses.
+ * This is not appropriate for selects in SqlMaps because the column is
+ * not escaped for iBATIS. If there
+ * is a table alias, the value will be alias.columnName.
+ *
+ * This method is used in the Example classes and the returned value will be
+ * in a Java string. So we need to escape double quotes if they are
+ * the delimiters.
+ *
+ * @return
+ */
public String getAliasedActualColumnName() {
- return aliasedActualColumnName;
+ StringBuffer sb = new StringBuffer();
+ if (StringUtility.stringHasValue(tableAlias)) {
+ sb.append(tableAlias);
+ sb.append('.');
+ }
+
+ if (isColumnNameDelimited) {
+ sb.append(StringUtility.escapeStringForJava(abatorContext.getBeginningDelimiter()));
+ }
+
+ sb.append(actualColumnName);
+
+ if (isColumnNameDelimited) {
+ sb.append(StringUtility.escapeStringForJava(abatorContext.getEndingDelimiter()));
+ }
+
+ return sb.toString();
}
+ /**
+ * Calculates the string to use in select phrases in SqlMaps.
+ *
+ * @return
+ */
public String getAliasedEscapedColumnName() {
- return aliasedEscapedColumnName;
+ if (StringUtility.stringHasValue(tableAlias)) {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append(tableAlias);
+ sb.append('.');
+ sb.append(getEscapedColumnName());
+ return sb.toString();
+ } else {
+ return getEscapedColumnName();
+ }
}
public void setColumnNameDelimited(boolean isColumnNameDelimited) {
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/IntrospectedTableImpl.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/IntrospectedTableImpl.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/IntrospectedTableImpl.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/db/IntrospectedTableImpl.java Fri Feb 16 22:14:18 2007
@@ -118,6 +118,12 @@
columnDefinitions.getBaseColumns().iterator());
}
+
+ public int getNonBLOBColumnCount() {
+ return columnDefinitions.getPrimaryKeyColumns().size()
+ + columnDefinitions.getBaseColumns().size();
+ }
+
public Iterator getPrimaryKeyColumns() {
return columnDefinitions.getPrimaryKeyColumns().iterator();
}
@@ -141,5 +147,9 @@
public Iterator getNonPrimaryKeyColumns() {
return new AggregatingIterator(columnDefinitions.getBaseColumns().iterator(),
columnDefinitions.getBLOBColumns().iterator());
+ }
+
+ public String getTableConfigurationProperty(String property) {
+ return (String) tableConfiguration.getProperties().get(property);
}
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseDAOGenerator.java Fri Feb 16 22:14:18 2007
@@ -1114,7 +1114,7 @@
s = (String) map.get(key);
if (s == null) {
StringBuffer sb = new StringBuffer(targetPackage);
- if ("true".equals(properties.get("enableSubPackages"))) { //$NON-NLS-1$ //$NON-NLS-2$
+ if ("true".equalsIgnoreCase((String)properties.get("enableSubPackages"))) { //$NON-NLS-1$ //$NON-NLS-2$
sb.append(table.getSubPackage());
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseLegacyDAOGenerator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseLegacyDAOGenerator.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseLegacyDAOGenerator.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/dao/BaseLegacyDAOGenerator.java Fri Feb 16 22:14:18 2007
@@ -365,7 +365,7 @@
sb.setLength(0);
sb.append("parms.put(\""); //$NON-NLS-1$
- sb.append(clause.getSelectorOrProperty(cd));
+ sb.append(clause.getSelectorOrProperty(cd, true));
sb.append("\", \"Y\");"); //$NON-NLS-1$
method.addBodyLine(sb.toString());
@@ -373,7 +373,7 @@
sb.setLength(0);
sb.append("parms.put(\""); //$NON-NLS-1$
- sb.append(clause.getSelectorAndProperty(cd));
+ sb.append(clause.getSelectorAndProperty(cd, true));
sb.append("\", \"Y\");"); //$NON-NLS-1$
method.addBodyLine(sb.toString());
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/java/model/JavaModelGeneratorJava2Impl.java Fri Feb 16 22:14:18 2007
@@ -215,7 +215,7 @@
s = (String) map.get(key);
if (s == null) {
StringBuffer sb = new StringBuffer(targetPackage);
- if ("true".equals(properties.get("enableSubPackages"))) { //$NON-NLS-1$ //$NON-NLS-2$
+ if ("true".equalsIgnoreCase((String)properties.get("enableSubPackages"))) { //$NON-NLS-1$ //$NON-NLS-2$
sb.append(table.getSubPackage());
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/ExampleClause.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/ExampleClause.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/ExampleClause.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/ExampleClause.java Fri Feb 16 22:14:18 2007
@@ -22,6 +22,7 @@
import java.util.List;
import org.apache.ibatis.abator.internal.db.ColumnDefinition;
+import org.apache.ibatis.abator.internal.util.StringUtility;
/**
* @author Jeff Butler
@@ -116,16 +117,32 @@
this.examplePropertyValue = examplePropertyValue;
}
- public String getSelectorAndProperty(ColumnDefinition cd) {
+ public String getSelectorAndProperty(ColumnDefinition cd, boolean forJava) {
Object[] arguments = { "AND", cd.getEscapedColumnName() }; //$NON-NLS-1$
+
+ String s = MessageFormat.format(selectorProperty, arguments);
- return MessageFormat.format(selectorProperty, arguments);
+ if (forJava) {
+ s = StringUtility.escapeStringForJava(s);
+ } else {
+ s = StringUtility.escapeStringForXml(s);
+ }
+
+ return s;
}
- public String getSelectorOrProperty(ColumnDefinition cd) {
+ public String getSelectorOrProperty(ColumnDefinition cd, boolean forJava) {
Object[] arguments = { "OR", cd.getEscapedColumnName() }; //$NON-NLS-1$
- return MessageFormat.format(selectorProperty, arguments);
+ String s = MessageFormat.format(selectorProperty, arguments);
+
+ if (forJava) {
+ s = StringUtility.escapeStringForJava(s);
+ } else {
+ s = StringUtility.escapeStringForXml(s);
+ }
+
+ return s;
}
public String getClause(ColumnDefinition cd) {
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorIterateImpl.java Fri Feb 16 22:14:18 2007
@@ -275,6 +275,8 @@
* @return the resultMap element
*/
protected XmlElement getBaseResultMapElement(IntrospectedTable introspectedTable) {
+ boolean useColumnIndex =
+ "true".equalsIgnoreCase(introspectedTable.getTableConfigurationProperty("useColumnIndexes")); //$NON-NLS-1$ //$NON-NLS-2$
XmlElement answer = new XmlElement("resultMap"); //$NON-NLS-1$
FullyQualifiedTable table = introspectedTable.getTable();
answer.addAttribute(new Attribute("id", //$NON-NLS-1$
@@ -292,14 +294,25 @@
answer.addComment();
+ int i = 1;
+ if (StringUtility.stringHasValue(introspectedTable.getSelectByPrimaryKeyQueryId())) {
+ i++;
+ }
+
Iterator iter = introspectedTable.getNonBLOBColumns();
while (iter.hasNext()) {
ColumnDefinition cd = (ColumnDefinition) iter.next();
XmlElement resultElement = new XmlElement("result"); //$NON-NLS-1$
- resultElement.addAttribute(new Attribute(
+ if (useColumnIndex) {
+ resultElement.addAttribute(new Attribute(
+ "columnIndex", Integer.toString(i++))); //$NON-NLS-1$
+ } else {
+ resultElement.addAttribute(new Attribute(
"column", cd.getRenamedColumnNameForResultMap())); //$NON-NLS-1$
+ }
+
resultElement.addAttribute(new Attribute(
"property", cd.getJavaProperty())); //$NON-NLS-1$
resultElement.addAttribute(new Attribute("jdbcType", //$NON-NLS-1$
@@ -325,6 +338,8 @@
* @return the resultMap element
*/
protected XmlElement getResultMapWithBLOBsElement(IntrospectedTable introspectedTable) {
+ boolean useColumnIndex =
+ "true".equalsIgnoreCase(introspectedTable.getTableConfigurationProperty("useColumnIndexes")); //$NON-NLS-1$ //$NON-NLS-2$
XmlElement answer = new XmlElement("resultMap"); //$NON-NLS-1$
FullyQualifiedTable table = introspectedTable.getTable();
@@ -355,14 +370,23 @@
answer.addComment();
+ int i = introspectedTable.getNonBLOBColumnCount() + 1;
+ if (StringUtility.stringHasValue(introspectedTable.getSelectByPrimaryKeyQueryId())) {
+ i++;
+ }
Iterator iter = introspectedTable.getBLOBColumns();
while (iter.hasNext()) {
ColumnDefinition cd = (ColumnDefinition) iter.next();
XmlElement resultElement = new XmlElement("result"); //$NON-NLS-1$
- resultElement.addAttribute(new Attribute(
+ if (useColumnIndex) {
+ resultElement.addAttribute(new Attribute(
+ "columnIndex", Integer.toString(i++))); //$NON-NLS-1$
+ } else {
+ resultElement.addAttribute(new Attribute(
"column", cd.getRenamedColumnNameForResultMap())); //$NON-NLS-1$
+ }
resultElement.addAttribute(new Attribute(
"property", cd.getJavaProperty())); //$NON-NLS-1$
resultElement.addAttribute(new Attribute(
@@ -981,7 +1005,7 @@
s = (String) map.get(key);
if (s == null) {
StringBuffer sb = new StringBuffer(targetPackage);
- if ("true".equals(properties.get("enableSubPackages"))) { //$NON-NLS-1$ //$NON-NLS-2$
+ if ("true".equalsIgnoreCase((String)properties.get("enableSubPackages"))) { //$NON-NLS-1$ //$NON-NLS-2$
sb.append(table.getSubPackage());
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/sqlmap/SqlMapGeneratorLegacyImpl.java Fri Feb 16 22:14:18 2007
@@ -110,13 +110,13 @@
XmlElement isPropAvail = new XmlElement("isPropertyAvailable"); //$NON-NLS-1$
isPropAvail.addAttribute(new Attribute("prepend", "and")); //$NON-NLS-1$ //$NON-NLS-2$
- isPropAvail.addAttribute(new Attribute("property", ec.getSelectorAndProperty(cd))); //$NON-NLS-1$
+ isPropAvail.addAttribute(new Attribute("property", ec.getSelectorAndProperty(cd, false))); //$NON-NLS-1$
isPropAvail.addElement(new TextElement(ec.getClause(cd)));
dynamicElement.addElement(isPropAvail);
isPropAvail = new XmlElement("isPropertyAvailable"); //$NON-NLS-1$
isPropAvail.addAttribute(new Attribute("prepend", "or")); //$NON-NLS-1$ //$NON-NLS-2$
- isPropAvail.addAttribute(new Attribute("property", ec.getSelectorOrProperty(cd))); //$NON-NLS-1$
+ isPropAvail.addAttribute(new Attribute("property", ec.getSelectorOrProperty(cd, false))); //$NON-NLS-1$
isPropAvail.addElement(new TextElement(ec.getClause(cd)));
dynamicElement.addElement(isPropAvail);
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/StringUtility.java Fri Feb 16 22:14:18 2007
@@ -15,6 +15,8 @@
*/
package org.apache.ibatis.abator.internal.util;
+import java.util.StringTokenizer;
+
/**
*
* @author Jeff Butler
@@ -57,5 +59,35 @@
public static boolean stringContainsSpace(String s) {
return s != null && s.indexOf(' ') != -1;
+ }
+
+ public static String escapeStringForJava(String s) {
+ StringTokenizer st = new StringTokenizer(s, "\"", true); //$NON-NLS-1$
+ StringBuffer sb = new StringBuffer();
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ if ("\"".equals(token)) { //$NON-NLS-1$
+ sb.append("\\\""); //$NON-NLS-1$
+ } else {
+ sb.append(token);
+ }
+ }
+
+ return sb.toString();
+ }
+
+ public static String escapeStringForXml(String s) {
+ StringTokenizer st = new StringTokenizer(s, "\"", true); //$NON-NLS-1$
+ StringBuffer sb = new StringBuffer();
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ if ("\"".equals(token)) { //$NON-NLS-1$
+ sb.append("""); //$NON-NLS-1$
+ } else {
+ sb.append(token);
+ }
+ }
+
+ return sb.toString();
}
}
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/src/org/apache/ibatis/abator/internal/util/messages/messages.properties Fri Feb 16 22:14:18 2007
@@ -11,6 +11,7 @@
ValidationError.10=JdbcConnectionConfiguration is required
ValidationError.11=At least one AbatorConfiguration element is required
ValidationError.12={0} Target Package is Required for context {1}
+ValidationError.13=If "useColumnIndexes" property is set, then either both or neither query id must be set for table {0}
RuntimeError.0=configfile is a required parameter
RuntimeError.1=configfile {0} does not exist
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/CreateDB.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/CreateDB.sql?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/CreateDB.sql (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/CreateDB.sql Fri Feb 16 22:14:18 2007
@@ -4,6 +4,7 @@
drop table PKBlobs if exists;
drop table PKFieldsBlobs if exists;
drop table FieldsBlobs if exists;
+drop table "awful table" if exists;
drop table BlobsOnly if exists;
create table FieldsOnly (
@@ -55,6 +56,25 @@
lastName varchar(20),
blob1 longvarbinary,
blob2 longvarbinary
+);
+
+create table "awful table" (
+ "CuStOmEr iD" int generated by default as identity (start with 57) not null,
+ "customer id" int,
+ "first name" varchar(20),
+ "First Name" varchar(20),
+ "first Name" varchar(20),
+ first_name varchar(20),
+ firstName varchar(20),
+ E_MAIL varchar(20),
+ _id1 int not null,
+ $id2 int not null,
+ id5_ int not null,
+ id6$ int not null,
+ id7$$ int not null,
+ EmailAddress varchar(30),
+ "from" varchar(30),
+ primary key("CuStOmEr iD")
);
-- this table should be ignored, nothing generated
Modified: ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/abatorConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/abatorConfig.xml?view=diff&rev=508716&r1=508715&r2=508716
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/abatorConfig.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/tools/abator/core/testJava2/abatortest/java2/abatorConfig.xml Fri Feb 16 22:14:18 2007
@@ -29,6 +29,17 @@
<table tableName="PKBlobs" />
<table tableName="PKFieldsBlobs" />
<table tableName="FieldsBlobs" />
+ <table tableName="awful table" alias="A">
+ <property name="useColumnIndexes" value="true"/>
+ <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" />
+ <columnOverride column="customer id" property="secondCustomerId" />
+ <columnOverride column="first name" property="firstFirstName" />
+ <columnOverride column="First Name" property="secondFirstName" />
+ <ignoreColumn column="first Name" />
+ <columnOverride column="first_name" property="thirdFirstName" />
+ <columnOverride column="firstName" property="fourthFirstName" />
+ <columnOverride column="from" delimitedColumnName="true" />
+ </table>
</abatorContext>
<abatorContext generatorSet="Legacy" defaultModelType="flat">
@@ -55,6 +66,17 @@
<table tableName="PKBlobs" />
<table tableName="PKFieldsBlobs" />
<table tableName="FieldsBlobs" />
+ <table tableName="awful table" alias="A">
+ <property name="useColumnIndexes" value="true"/>
+ <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" />
+ <columnOverride column="customer id" property="secondCustomerId" />
+ <columnOverride column="first name" property="firstFirstName" />
+ <columnOverride column="First Name" property="secondFirstName" />
+ <ignoreColumn column="first Name" />
+ <columnOverride column="first_name" property="thirdFirstName" />
+ <columnOverride column="firstName" property="fourthFirstName" />
+ <columnOverride column="from" delimitedColumnName="true" />
+ </table>
</abatorContext>
<abatorContext generatorSet="Java2" defaultModelType="hierarchical">
@@ -81,6 +103,17 @@
<table tableName="PKBlobs" />
<table tableName="PKFieldsBlobs" />
<table tableName="FieldsBlobs" />
+ <table tableName="awful table" alias="A">
+ <property name="useColumnIndexes" value="true"/>
+ <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" />
+ <columnOverride column="customer id" property="secondCustomerId" />
+ <columnOverride column="first name" property="firstFirstName" />
+ <columnOverride column="First Name" property="secondFirstName" />
+ <ignoreColumn column="first Name" />
+ <columnOverride column="first_name" property="thirdFirstName" />
+ <columnOverride column="firstName" property="fourthFirstName" />
+ <columnOverride column="from" delimitedColumnName="true" />
+ </table>
</abatorContext>
<abatorContext generatorSet="Legacy" defaultModelType="hierarchical">
@@ -107,6 +140,17 @@
<table tableName="PKBlobs" />
<table tableName="PKFieldsBlobs" />
<table tableName="FieldsBlobs" />
+ <table tableName="awful table" alias="A">
+ <property name="useColumnIndexes" value="true"/>
+ <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" />
+ <columnOverride column="customer id" property="secondCustomerId" />
+ <columnOverride column="first name" property="firstFirstName" />
+ <columnOverride column="First Name" property="secondFirstName" />
+ <ignoreColumn column="first Name" />
+ <columnOverride column="first_name" property="thirdFirstName" />
+ <columnOverride column="firstName" property="fourthFirstName" />
+ <columnOverride column="from" delimitedColumnName="true" />
+ </table>
</abatorContext>
<abatorContext generatorSet="Java2" defaultModelType="conditional">
@@ -133,6 +177,17 @@
<table tableName="PKBlobs" />
<table tableName="PKFieldsBlobs" />
<table tableName="FieldsBlobs" />
+ <table tableName="awful table" alias="A">
+ <property name="useColumnIndexes" value="true"/>
+ <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" />
+ <columnOverride column="customer id" property="secondCustomerId" />
+ <columnOverride column="first name" property="firstFirstName" />
+ <columnOverride column="First Name" property="secondFirstName" />
+ <ignoreColumn column="first Name" />
+ <columnOverride column="first_name" property="thirdFirstName" />
+ <columnOverride column="firstName" property="fourthFirstName" />
+ <columnOverride column="from" delimitedColumnName="true" />
+ </table>
</abatorContext>
<abatorContext generatorSet="Legacy" defaultModelType="conditional">
@@ -159,6 +214,17 @@
<table tableName="PKBlobs" />
<table tableName="PKFieldsBlobs" />
<table tableName="FieldsBlobs" />
+ <table tableName="awful table" alias="A">
+ <property name="useColumnIndexes" value="true"/>
+ <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" />
+ <columnOverride column="customer id" property="secondCustomerId" />
+ <columnOverride column="first name" property="firstFirstName" />
+ <columnOverride column="First Name" property="secondFirstName" />
+ <ignoreColumn column="first Name" />
+ <columnOverride column="first_name" property="thirdFirstName" />
+ <columnOverride column="firstName" property="fourthFirstName" />
+ <columnOverride column="from" delimitedColumnName="true" />
+ </table>
</abatorContext>
<abatorContext id="miscellaneousTests" generatorSet="Java2">