Author: cbegin
Date: Tue Oct  6 05:47:27 2009
New Revision: 822132

URL: http://svn.apache.org/viewvc?rev=822132&view=rev
Log:
IBATIS-648 Collection mapping doesn't work when target collection property is 
not null


Added:
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/Author.xml
   (with props)
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/AuthorDAOTest.java
   (with props)
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/create.sql
   (with props)
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
   (with props)
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Author.java
   (with props)
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/AuthorDAO.java
   (with props)
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Post.java
   (with props)

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/Author.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/Author.xml?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/Author.xml
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/Author.xml
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
+    "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd";>
+
+<mapper namespace="Author">
+
+  <resultMap id="authorResultMap" type="Author">
+    <id column="author_id" property="id"/>
+    <result column="author_name" property="name"/>
+    <collection property="posts" ofType="Post">
+      <id property="id" column="post_id"/>
+      <result column="post_id" property="id"/>
+      <result column="post_content" property="content"/>
+    </collection>
+  </resultMap>
+
+  <select id="getAllAuthors" resultMap="authorResultMap">
+    SELECT
+    a.author_id as author_id,
+    a.name as author_name,
+    p.post_id as post_id,
+    p.content as post_content
+    FROM author a
+    LEFT JOIN post p ON a.author_id = p.author_id
+  </select>
+
+</mapper>
\ No newline at end of file

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/Author.xml
------------------------------------------------------------------------------
    svn:executable = *

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/AuthorDAOTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/AuthorDAOTest.java?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/AuthorDAOTest.java
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/AuthorDAOTest.java
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,39 @@
+package org.apache.ibatis.submitted.initialized_collection_property;
+
+import org.apache.ibatis.submitted.initialized_collection_property.test.*;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import java.util.List;
+import java.io.Reader;
+import java.sql.Connection;
+
+public class AuthorDAOTest {
+
+
+  @Test
+  public void testGetMessageForEmptyDatabase() throws Exception {
+    final String resource = 
"org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml";
+    Reader reader = Resources.getResourceAsReader(resource);
+    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
+
+    SqlSession session = factory.openSession();
+
+    Connection conn = session.getConnection();
+    ScriptRunner runner = new ScriptRunner(conn);
+    reader = 
Resources.getResourceAsReader("org/apache/ibatis/submitted/initialized_collection_property/db/create.sql");
+    runner.runScript(reader);
+    session.close();
+
+    AuthorDAO dao = new AuthorDAO(factory);
+    List<Author> authors = dao.getAuthors();
+    assertEquals(1, authors.size());
+  }
+
+}

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/AuthorDAOTest.java
------------------------------------------------------------------------------
    svn:executable = *

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/create.sql
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/create.sql?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/create.sql
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/create.sql
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,7 @@
+CREATE MEMORY TABLE POST(POST_ID INTEGER NOT NULL PRIMARY KEY,CONTENT 
VARCHAR(255) NOT NULL,AUTHOR_ID INTEGER NOT NULL);
+CREATE MEMORY TABLE AUTHOR(AUTHOR_ID INTEGER NOT NULL PRIMARY KEY,NAME 
VARCHAR(255));
+ALTER TABLE POST ADD CONSTRAINT AUTHOR_CONSTRAINT FOREIGN KEY(AUTHOR_ID) 
REFERENCES AUTHOR(AUTHOR_ID);
+INSERT INTO POST VALUES(1,'content 1',1);
+INSERT INTO POST VALUES(2,'content 2',1);
+INSERT INTO POST VALUES(3,'content 3',1);
+INSERT INTO AUTHOR VALUES(1,'James Brown');

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/db/create.sql
------------------------------------------------------------------------------
    svn:executable = *

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+    PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
+    "http://ibatis.apache.org/dtd/ibatis-3-config.dtd";>
+
+<configuration>
+
+  <typeAliases>
+    <typeAlias 
type="org.apache.ibatis.submitted.initialized_collection_property.test.Author" 
alias="Author"/>
+    <typeAlias 
type="org.apache.ibatis.submitted.initialized_collection_property.test.Post" 
alias="Post"/>
+  </typeAliases>
+  <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:cname"/>
+        <property name="username" value="sa"/>
+      </dataSource>
+    </environment>
+  </environments>
+  <mappers>
+    <mapper 
resource="org/apache/ibatis/submitted/initialized_collection_property/Author.xml"/>
+  </mappers>
+
+</configuration>
\ No newline at end of file

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
------------------------------------------------------------------------------
    svn:executable = *

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Author.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Author.java?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Author.java
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Author.java
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.submitted.initialized_collection_property.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Author {
+  public long id;
+
+  public List<Post> posts = new ArrayList<Post>();
+
+  public String name;
+}
\ No newline at end of file

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Author.java
------------------------------------------------------------------------------
    svn:executable = *

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/AuthorDAO.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/AuthorDAO.java?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/AuthorDAO.java
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/AuthorDAO.java
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,25 @@
+package org.apache.ibatis.submitted.initialized_collection_property.test;
+
+import java.util.List;
+
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+
+public class AuthorDAO {
+  private SqlSessionFactory sqlSessionFactory;
+
+  public AuthorDAO(SqlSessionFactory sqlSessionFactory) {
+    this.sqlSessionFactory = sqlSessionFactory;
+  }
+
+  public List<Author> getAuthors() {
+    SqlSession session = sqlSessionFactory.openSession();
+    List<Author> authors = session.selectList("Author.getAllAuthors");
+    session.close();
+    return authors;
+  }
+
+  public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
+    this.sqlSessionFactory = sqlSessionFactory;
+  }
+}

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/AuthorDAO.java
------------------------------------------------------------------------------
    svn:executable = *

Added: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Post.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Post.java?rev=822132&view=auto
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Post.java
 (added)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Post.java
 Tue Oct  6 05:47:27 2009
@@ -0,0 +1,6 @@
+package org.apache.ibatis.submitted.initialized_collection_property.test;
+
+public class Post {
+  public int id;
+  public String content;
+}

Propchange: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/test/Post.java
------------------------------------------------------------------------------
    svn:executable = *


Reply via email to