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


Reply via email to