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();