Author: jgbutler
Date: Sun Mar 28 21:18:43 2010
New Revision: 928495

URL: http://svn.apache.org/viewvc?rev=928495&view=rev
Log:
[Ibator] Tests and fix for corner case issue with insertSelective, sequences, 
and iBATIS3

Modified:
    ibatis/java/ibator/trunk/core/ibator-core/doc/ReleaseNotes.txt
    ibatis/java/ibator/trunk/core/ibator-core/doc/html/whatsNew.html
    
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/xmlmapper/elements/InsertSelectiveElementGenerator.java
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/CreateDB.sql
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/ibatorConfig.xml
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/AbstractMiscellaneousTest.java
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/MiscellaneousTest.java
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/resources/ibatortest/java2/execute/miscellaneous/SqlMapConfig.xml
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/CreateDB.sql
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/ibatorConfig.xml
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/CreateDB.sql
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/ibatorConfig.xml
    
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java

Modified: ibatis/java/ibator/trunk/core/ibator-core/doc/ReleaseNotes.txt
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/doc/ReleaseNotes.txt?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- ibatis/java/ibator/trunk/core/ibator-core/doc/ReleaseNotes.txt (original)
+++ ibatis/java/ibator/trunk/core/ibator-core/doc/ReleaseNotes.txt Sun Mar 28 
21:18:43 2010
@@ -17,6 +17,8 @@ Bugs:
 6. Fixed spelling error LONCVARCHAR->LONGVARCHAR (thanks Allard)
 7. Fixed IBATIS-731 - change name of primary key variable to avoid conflicts
 8. Fixed IBATIS-699 - Overwrite unmergeable XML files if enabled
+9. Fixed issue where insertSelective failed if there is a sequence generating 
the
+   primary key (issue only with iBATIS3)
 
 Enhancements:
 1. IBATIS-569 - Make it easier to override IbatorRules in plugins

Modified: ibatis/java/ibator/trunk/core/ibator-core/doc/html/whatsNew.html
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/doc/html/whatsNew.html?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- ibatis/java/ibator/trunk/core/ibator-core/doc/html/whatsNew.html (original)
+++ ibatis/java/ibator/trunk/core/ibator-core/doc/html/whatsNew.html Sun Mar 28 
21:18:43 2010
@@ -78,6 +78,8 @@ to iBATIS 3.x only requires two changes 
   <li>Fixed spelling error LONCVARCHAR->LONGVARCHAR (thanks Allard)</li>
   <li>Fixed IBATIS-731 - change name of primary key variable to avoid 
conflicts</li>
   <li>Fixed IBATIS-699 - Overwrite unmergeable XML files if enabled</li>
+  <li>Fixed issue where insertSelective failed if there is a sequence 
generating the
+      primary key (issue only with iBATIS3)</li>
 </ul>
 
 <h3>Enhancements</h3>

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/xmlmapper/elements/InsertSelectiveElementGenerator.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/xmlmapper/elements/InsertSelectiveElementGenerator.java?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/xmlmapper/elements/InsertSelectiveElementGenerator.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/xmlmapper/elements/InsertSelectiveElementGenerator.java
 Sun Mar 28 21:18:43 2010
@@ -50,6 +50,7 @@ public class InsertSelectiveElementGener
 
         GeneratedKey gk = introspectedTable.getGeneratedKey();
 
+        String sequenceColumn = null;
         if (gk != null && gk.isBeforeInsert()) {
             IntrospectedColumn introspectedColumn = 
introspectedTable.getColumn(gk.getColumn());
             // if the column is null, then it's a configuration error. The
@@ -57,6 +58,7 @@ public class InsertSelectiveElementGener
             if (introspectedColumn != null) {
                 // pre-generated key
                 answer.addElement(getSelectKey(introspectedColumn, gk));
+                sequenceColumn = gk.getColumn(); 
             }
         }
         
@@ -66,17 +68,17 @@ public class InsertSelectiveElementGener
         sb.append(introspectedTable.getFullyQualifiedTableNameAtRuntime());
         answer.addElement(new TextElement(sb.toString()));
         
-        XmlElement insertElement = new XmlElement("trim"); //$NON-NLS-1$
-        insertElement.addAttribute(new Attribute("prefix", "(")); 
//$NON-NLS-1$ //$NON-NLS-2$
-        insertElement.addAttribute(new Attribute("suffix", ")")); 
//$NON-NLS-1$ //$NON-NLS-2$
-        insertElement.addAttribute(new Attribute("suffixOverrides", ",")); 
//$NON-NLS-1$ //$NON-NLS-2$
-        answer.addElement(insertElement);
+        XmlElement insertTrimElement = new XmlElement("trim"); //$NON-NLS-1$
+        insertTrimElement.addAttribute(new Attribute("prefix", "(")); 
//$NON-NLS-1$ //$NON-NLS-2$
+        insertTrimElement.addAttribute(new Attribute("suffix", ")")); 
//$NON-NLS-1$ //$NON-NLS-2$
+        insertTrimElement.addAttribute(new Attribute("suffixOverrides", ",")); 
//$NON-NLS-1$ //$NON-NLS-2$
+        answer.addElement(insertTrimElement);
         
-        XmlElement valuesElement = new XmlElement("trim"); //$NON-NLS-1$
-        valuesElement.addAttribute(new Attribute("prefix", "values (")); 
//$NON-NLS-1$ //$NON-NLS-2$
-        valuesElement.addAttribute(new Attribute("suffix", ")")); 
//$NON-NLS-1$ //$NON-NLS-2$
-        valuesElement.addAttribute(new Attribute("suffixOverrides", ",")); 
//$NON-NLS-1$ //$NON-NLS-2$
-        answer.addElement(valuesElement);
+        XmlElement valuesTrimElement = new XmlElement("trim"); //$NON-NLS-1$
+        valuesTrimElement.addAttribute(new Attribute("prefix", "values (")); 
//$NON-NLS-1$ //$NON-NLS-2$
+        valuesTrimElement.addAttribute(new Attribute("suffix", ")")); 
//$NON-NLS-1$ //$NON-NLS-2$
+        valuesTrimElement.addAttribute(new Attribute("suffixOverrides", ",")); 
//$NON-NLS-1$ //$NON-NLS-2$
+        answer.addElement(valuesTrimElement);
         
         for (IntrospectedColumn introspectedColumn : 
introspectedTable.getAllColumns()) {
             if (introspectedColumn.isIdentity()) {
@@ -84,6 +86,21 @@ public class InsertSelectiveElementGener
                 continue;
             }
             
+            boolean isSequenceColumn = sequenceColumn == null ? false : 
sequenceColumn.equals(introspectedColumn.getActualColumnName());
+            if (isSequenceColumn) {
+                sb.setLength(0);
+                
sb.append(Ibatis3FormattingUtilities.getEscapedColumnName(introspectedColumn));
+                sb.append(',');
+                insertTrimElement.addElement(new TextElement(sb.toString()));
+                
+                sb.setLength(0);
+                
sb.append(Ibatis3FormattingUtilities.getParameterClause(introspectedColumn));
+                sb.append(',');
+                valuesTrimElement.addElement(new TextElement(sb.toString()));
+                
+                continue;
+            }
+            
             XmlElement insertNotNullElement = new XmlElement("if"); 
//$NON-NLS-1$
             sb.setLength(0);
             sb.append(introspectedColumn.getJavaProperty());
@@ -94,7 +111,7 @@ public class InsertSelectiveElementGener
             
sb.append(Ibatis3FormattingUtilities.getEscapedColumnName(introspectedColumn));
             sb.append(',');
             insertNotNullElement.addElement(new TextElement(sb.toString()));
-            insertElement.addElement(insertNotNullElement);
+            insertTrimElement.addElement(insertNotNullElement);
             
             XmlElement valuesNotNullElement = new XmlElement("if"); 
//$NON-NLS-1$
             sb.setLength(0);
@@ -106,7 +123,7 @@ public class InsertSelectiveElementGener
             
sb.append(Ibatis3FormattingUtilities.getParameterClause(introspectedColumn));
             sb.append(',');
             valuesNotNullElement.addElement(new TextElement(sb.toString()));
-            valuesElement.addElement(valuesNotNullElement);
+            valuesTrimElement.addElement(valuesNotNullElement);
         }
         
         if (gk != null && !gk.isBeforeInsert()) {

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/CreateDB.sql
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/CreateDB.sql?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/CreateDB.sql
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/CreateDB.sql
 Sun Mar 28 21:18:43 2010
@@ -6,6 +6,10 @@ drop table PKFieldsBlobs if exists;
 drop table FieldsBlobs if exists;
 drop table "awful table" if exists;
 drop table BlobsOnly if exists;
+drop table RegexRename if exists;
+drop sequence TestSequence if exists;
+
+create sequence TestSequence as integer start with 1;
 
 create table FieldsOnly (
   IntegerField int,
@@ -85,3 +89,11 @@ create table BlobsOnly (
   blob1 longvarbinary,
   blob2 longvarbinary
 );
+
+create table RegexRename (
+  CUST_ID integer not null,
+  CUST_NAME varchar(30),
+  CUST_ADDRESS varchar(30),
+  ZIP_CODE char(5),
+  primary key(CUST_ID)
+);

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/ibatorConfig.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/ibatorConfig.xml?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/ibatorConfig.xml
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/main/resources/ibatorConfig.xml
 Sun Mar 28 21:18:43 2010
@@ -162,5 +162,9 @@
       <columnOverride column="timeField" 
javaType="ibatortest.java2.execute.miscellaneous.MyTime"
          
typeHandler="ibatortest.java2.execute.miscellaneous.MyTimeTypeHandler"/>
     </table>
+    <table tableName="RegexRename">
+      <generatedKey column="CUST_ID" sqlStatement="call next value for 
TestSequence" type="pre" />
+      <columnRenamingRule searchString="^CUST" />
+    </table>
   </ibatorContext>
 </ibatorConfiguration>

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/AbstractMiscellaneousTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/AbstractMiscellaneousTest.java?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/AbstractMiscellaneousTest.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/AbstractMiscellaneousTest.java
 Sun Mar 28 21:18:43 2010
@@ -3,6 +3,8 @@ package ibatortest.java2.execute.miscell
 import ibatortest.java2.AbstractTest;
 import ibatortest.java2.generated.miscellaneous.dao.MyObjectDAO;
 import ibatortest.java2.generated.miscellaneous.dao.MyObjectDAOImpl;
+import ibatortest.java2.generated.miscellaneous.dao.RegexrenameDAO;
+import ibatortest.java2.generated.miscellaneous.dao.RegexrenameDAOImpl;
 
 public abstract class AbstractMiscellaneousTest extends AbstractTest {
 
@@ -16,4 +18,9 @@ public abstract class AbstractMiscellane
         MyObjectDAOImpl dao = new MyObjectDAOImpl(getSqlMapClient());
         return dao;
     }
+    
+    protected RegexrenameDAO getRegexrenameDAO() {
+        RegexrenameDAOImpl dao = new RegexrenameDAOImpl(getSqlMapClient());
+        return dao;
+    }
 }

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/MiscellaneousTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/MiscellaneousTest.java?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/MiscellaneousTest.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/java/ibatortest/java2/execute/miscellaneous/MiscellaneousTest.java
 Sun Mar 28 21:18:43 2010
@@ -17,9 +17,11 @@
 package ibatortest.java2.execute.miscellaneous;
 
 import ibatortest.java2.generated.miscellaneous.dao.MyObjectDAO;
+import ibatortest.java2.generated.miscellaneous.dao.RegexrenameDAO;
 import ibatortest.java2.generated.miscellaneous.model.MyObject;
 import ibatortest.java2.generated.miscellaneous.model.MyObjectExample;
 import ibatortest.java2.generated.miscellaneous.model.MyObjectKey;
+import ibatortest.java2.generated.miscellaneous.model.Regexrename;
 
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -833,4 +835,48 @@ public class MiscellaneousTest extends A
             fail(e.getMessage());
         }
     }
+
+    public void testRegexRenameInsert() {
+        RegexrenameDAO dao = getRegexrenameDAO();
+        
+        try {
+            Regexrename record = new Regexrename();
+            record.setAddress("123 Main Street");
+            record.setName("Fred");
+            record.setZipCode("99999");
+            
+            dao.insertRegexrename(record);
+            
+            Regexrename returnedRecord = dao.selectRegexrenameByPrimaryKey(new 
Integer(1));
+            
+            assertEquals(record.getAddress(), returnedRecord.getAddress());
+            assertEquals(record.getId(), returnedRecord.getId());
+            assertEquals(record.getName(), returnedRecord.getName());
+            assertEquals(record.getZipCode(), returnedRecord.getZipCode());
+        } catch (SQLException e) {
+            fail(e.getMessage());
+        }
+    }
+
+    public void testRegexRenameInsertSelective() {
+        RegexrenameDAO dao = getRegexrenameDAO();
+        
+        try {
+            Regexrename record = new Regexrename();
+            record.setZipCode("99999");
+            
+            dao.insertRegexrenameSelective(record);
+            Integer key = new Integer(1);
+            assertEquals(key, record.getId());
+            
+            Regexrename returnedRecord = 
dao.selectRegexrenameByPrimaryKey(key);
+            
+            assertNull(returnedRecord.getAddress());
+            assertEquals(record.getId(), returnedRecord.getId());
+            assertNull(returnedRecord.getName());
+            assertEquals(record.getZipCode(), returnedRecord.getZipCode());
+        } catch (SQLException e) {
+            fail(e.getMessage());
+        }
+    }
 }

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/resources/ibatortest/java2/execute/miscellaneous/SqlMapConfig.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/resources/ibatortest/java2/execute/miscellaneous/SqlMapConfig.xml?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/resources/ibatortest/java2/execute/miscellaneous/SqlMapConfig.xml
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java2/src/test/resources/ibatortest/java2/execute/miscellaneous/SqlMapConfig.xml
 Sun Mar 28 21:18:43 2010
@@ -18,5 +18,6 @@
   </transactionManager>
 
   <sqlMap 
resource="ibatortest/java2/generated/miscellaneous/xml/PKFIELDS_SqlMap.xml" />
+  <sqlMap 
resource="ibatortest/java2/generated/miscellaneous/xml/REGEXRENAME_SqlMap.xml" 
/>
 
 </sqlMapConfig>

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/CreateDB.sql
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/CreateDB.sql?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/CreateDB.sql
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/CreateDB.sql
 Sun Mar 28 21:18:43 2010
@@ -8,6 +8,9 @@ drop table "awful table" if exists;
 drop table BlobsOnly if exists;
 drop table RegexRename if exists;
 drop table AnotherAwfulTable if exists;
+drop sequence TestSequence if exists;
+
+create sequence TestSequence as integer start with 1;
 
 create table FieldsOnly (
   IntegerField int,
@@ -89,7 +92,7 @@ create table BlobsOnly (
 );
 
 create table RegexRename (
-  CUST_ID integer,
+  CUST_ID integer not null,
   CUST_NAME varchar(30),
   CUST_ADDRESS varchar(30),
   ZIP_CODE char(5),

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/ibatorConfig.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/ibatorConfig.xml?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/ibatorConfig.xml
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/main/resources/ibatorConfig.xml
 Sun Mar 28 21:18:43 2010
@@ -301,6 +301,7 @@
          typeHandler="ibatortest.execute.miscellaneous.MyTimeTypeHandler"/>
     </table>
     <table tableName="RegexRename">
+      <generatedKey column="CUST_ID" sqlStatement="call next value for 
TestSequence" type="pre" />
       <columnRenamingRule searchString="^CUST" />
     </table>
   </ibatorContext>

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis2-java5/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
 Sun Mar 28 21:18:43 2010
@@ -877,13 +877,12 @@ public class MiscellaneousTest extends A
         try {
             Regexrename record = new Regexrename();
             record.setAddress("123 Main Street");
-            record.setId(22);
             record.setName("Fred");
             record.setZipCode("99999");
             
             dao.insertRegexrename(record);
             
-            Regexrename returnedRecord = dao.selectRegexrenameByPrimaryKey(22);
+            Regexrename returnedRecord = dao.selectRegexrenameByPrimaryKey(1);
             
             assertEquals(record.getAddress(), returnedRecord.getAddress());
             assertEquals(record.getId(), returnedRecord.getId());
@@ -894,6 +893,28 @@ public class MiscellaneousTest extends A
         }
     }
     
+    public void testRegexRenameInsertSelective() {
+        RegexrenameDAO dao = getRegexrenameDAO();
+        
+        try {
+            Regexrename record = new Regexrename();
+            record.setZipCode("99999");
+            
+            dao.insertRegexrenameSelective(record);
+            Integer key = 1;
+            assertEquals(key, record.getId());
+            
+            Regexrename returnedRecord = 
dao.selectRegexrenameByPrimaryKey(key);
+            
+            assertNull(returnedRecord.getAddress());
+            assertEquals(record.getId(), returnedRecord.getId());
+            assertNull(returnedRecord.getName());
+            assertEquals(record.getZipCode(), returnedRecord.getZipCode());
+        } catch (SQLException e) {
+            fail(e.getMessage());
+        }
+    }
+    
     public void testAnotherAwfulTableInsert() {
         SqlMapClient sqlMap = getSqlMapClient();
         

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/CreateDB.sql
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/CreateDB.sql?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/CreateDB.sql
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/CreateDB.sql
 Sun Mar 28 21:18:43 2010
@@ -9,6 +9,9 @@ drop table BlobsOnly if exists;
 drop table RegexRename if exists;
 drop table AnotherAwfulTable if exists;
 drop table EnumTest if exists;
+drop sequence TestSequence if exists;
+
+create sequence TestSequence as integer start with 1;
 
 create table FieldsOnly (
   IntegerField int,
@@ -87,7 +90,7 @@ create table BlobsOnly (
 );
 
 create table RegexRename (
-  CUST_ID integer,
+  CUST_ID integer not null,
   CUST_NAME varchar(30),
   CUST_ADDRESS varchar(30),
   ZIP_CODE char(5),

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/ibatorConfig.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/ibatorConfig.xml?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/ibatorConfig.xml
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/main/resources/ibatorConfig.xml
 Sun Mar 28 21:18:43 2010
@@ -163,6 +163,7 @@
          typeHandler="ibatortest.execute.miscellaneous.MyTimeTypeHandler"/>
     </table>
     <table tableName="RegexRename">
+      <generatedKey column="CUST_ID" sqlStatement="call next value for 
TestSequence" type="pre" />
       <columnRenamingRule searchString="^CUST" />
     </table>
     <table tableName="EnumTest">

Modified: 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java?rev=928495&r1=928494&r2=928495&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-systests-ibatis3/src/test/java/ibatortest/execute/miscellaneous/MiscellaneousTest.java
 Sun Mar 28 21:18:43 2010
@@ -889,16 +889,15 @@ public class MiscellaneousTest extends A
             RegexrenameMapper mapper = 
sqlSession.getMapper(RegexrenameMapper.class);
             Regexrename record = new Regexrename();
             record.setAddress("123 Main Street");
-            record.setId(22);
             record.setName("Fred");
             record.setZipCode("99999");
             
             mapper.insert(record);
             
-            Regexrename returnedRecord = mapper.selectByPrimaryKey(22);
+            Regexrename returnedRecord = mapper.selectByPrimaryKey(1);
             
             assertEquals(record.getAddress(), returnedRecord.getAddress());
-            assertEquals(record.getId(), returnedRecord.getId());
+            assertEquals(1, returnedRecord.getId().intValue());
             assertEquals(record.getName(), returnedRecord.getName());
             assertEquals(record.getZipCode(), returnedRecord.getZipCode());
         } finally {
@@ -907,6 +906,30 @@ public class MiscellaneousTest extends A
     }
     
     @Test
+    public void testRegexRenameInsertSelective() {
+        SqlSession sqlSession = sqlSessionFactory.openSession();
+        
+        try {
+            RegexrenameMapper mapper = 
sqlSession.getMapper(RegexrenameMapper.class);
+            Regexrename record = new Regexrename();
+            record.setZipCode("99999");
+            
+            mapper.insertSelective(record);
+            Integer key = 1;
+            assertEquals(key, record.getId());
+            
+            Regexrename returnedRecord = mapper.selectByPrimaryKey(key);
+            
+            assertNull(returnedRecord.getAddress());
+            assertEquals(record.getId(), returnedRecord.getId());
+            assertNull(record.getName(), returnedRecord.getName());
+            assertEquals(record.getZipCode(), returnedRecord.getZipCode());
+        } finally {
+            sqlSession.close();
+        }
+    }
+    
+    @Test
     public void testAnotherAwfulTableInsert() {
         SqlSession sqlSession = sqlSessionFactory.openSession();
         


Reply via email to