Author: jgbutler
Date: Tue Jul 7 21:19:25 2009
New Revision: 791980
URL: http://svn.apache.org/viewvc?rev=791980&view=rev
Log:
Apply current namespace when looking up select key elements
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/CreateDB.sql
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementBuilder.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/MapperConfig.xml
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/SelectKeyTest.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementBuilder.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementBuilder.java?rev=791980&r1=791979&r2=791980&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementBuilder.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementBuilder.java
Tue Jul 7 21:19:25 2009
@@ -47,6 +47,7 @@
String keyProperty = context.getStringAttribute("keyProperty");
KeyGenerator keyGenerator;
String keyStatementId = id + SelectKeyGenerator.SELECT_KEY_SUFFIX;
+ keyStatementId = builderAssistant.applyCurrentNamespace(keyStatementId);
if (configuration.hasKeyGenerator(keyStatementId)) {
keyGenerator = configuration.getKeyGenerator(keyStatementId);
} else {
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/CreateDB.sql
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/CreateDB.sql?rev=791980&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/CreateDB.sql
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/CreateDB.sql
Tue Jul 7 21:19:25 2009
@@ -0,0 +1,9 @@
+create table table1 (
+ id int generated by default as identity (start with 11) not null,
+ name varchar(20)
+);
+
+create table table2 (
+ id int generated by default as identity (start with 22) not null,
+ name varchar(20)
+);
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/MapperConfig.xml
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/MapperConfig.xml?rev=791980&r1=791979&r2=791980&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/MapperConfig.xml
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/MapperConfig.xml
Tue Jul 7 21:19:25 2009
@@ -5,6 +5,19 @@
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
+ <environments default="development">
+ <environment id="development">
+ <transactionManager type="JDBC">
+ <property name="" value=""/>
+ </transactionManager>
+ <dataSource type="UNPOOLED">
+ <property name="driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="url" value="jdbc:hsqldb:mem:lname"/>
+ <property name="username" value="sa"/>
+ </dataSource>
+ </environment>
+ </environments>
+
<mappers>
<mapper resource="org/apache/ibatis/submitted/selectkey/Table1.xml"/>
<mapper resource="org/apache/ibatis/submitted/selectkey/Table2.xml"/>
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/SelectKeyTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/SelectKeyTest.java?rev=791980&r1=791979&r2=791980&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/SelectKeyTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/selectkey/SelectKeyTest.java
Tue Jul 7 21:19:25 2009
@@ -1,14 +1,54 @@
package org.apache.ibatis.submitted.selectkey;
import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
import org.apache.ibatis.session.*;
+
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertEquals;
+
+import org.junit.BeforeClass;
import org.junit.Test;
+import java.io.PrintWriter;
import java.io.Reader;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.util.HashMap;
+import java.util.Map;
public class SelectKeyTest {
+ protected static SqlSessionFactory sqlSessionFactory;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ Connection conn = null;
+
+ try {
+ Class.forName("org.hsqldb.jdbcDriver");
+ conn = DriverManager.getConnection("jdbc:hsqldb:mem:lname", "sa",
+ "");
+
+ Reader reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/selectkey/CreateDB.sql");
+
+ ScriptRunner runner = new ScriptRunner(conn);
+ runner.setLogWriter(null);
+ runner.setErrorLogWriter(new PrintWriter(System.err));
+ runner.runScript(reader);
+ conn.commit();
+ reader.close();
+
+ reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/selectkey/MapperConfig.xml");
+ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
+ reader.close();
+ } finally {
+ if (conn != null) {
+ conn.close();
+ }
+ }
+ }
+
@Test
public void testSelectKey() throws Exception {
// this test checks to make sure that we can have select keys with the same
@@ -19,4 +59,37 @@
SqlSessionFactory sqlMapper = builder.build(reader);
assertNotNull(sqlMapper);
}
+
+ @Test
+ public void testInsertTable1() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+
+ try {
+ Map parms = new HashMap();
+ parms.put("name", "Fred");
+ int rows =
sqlSession.insert("org.apache.ibatis.submitted.selectkey.Table1.insert", parms);
+ assertEquals(1, rows);
+ assertEquals(11, parms.get("id"));
+
+ } finally {
+ sqlSession.close();
+ }
+ }
+
+ @Test
+ public void testInsertTable2() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+
+ try {
+ Map parms = new HashMap();
+ parms.put("name", "Fred");
+ int rows =
sqlSession.insert("org.apache.ibatis.submitted.selectkey.Table2.insert", parms);
+ assertEquals(1, rows);
+ assertEquals(22, parms.get("id"));
+
+ } finally {
+ sqlSession.close();
+ }
+ }
+
}