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