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 = *