You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/01/11 07:46:27 UTC
svn commit: r733421 - in
/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java: log4j.properties
org/apache/ibatis/api/SqlSessionTest.java
org/apache/ibatis/parser/BlogMapper.xml
Author: cbegin
Date: Sat Jan 10 22:46:27 2009
New Revision: 733421
URL: http://svn.apache.org/viewvc?rev=733421&view=rev
Log:
improved join test and added depth and breadth to the outer join set
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/log4j.properties
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/log4j.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/log4j.properties?rev=733421&r1=733420&r2=733421&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/log4j.properties (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/log4j.properties Sat Jan 10 22:46:27 2009
@@ -2,9 +2,9 @@
log4j.rootLogger=DEBUG, stdout
### Uncomment ALL for iBATIS logging
-log4j.logger.org.apache.ibatis=ERROR
+log4j.logger.org.apache.ibatis=DEBUG
-log4j.logger.java.sql=ERROR
+log4j.logger.java.sql=DEBUG
### For Testing
log4j.logger.java.lang.Object=DEBUG
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java?rev=733421&r1=733420&r2=733421&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java Sat Jan 10 22:46:27 2009
@@ -8,17 +8,18 @@
import java.io.Reader;
import java.util.List;
-import domain.blog.Author;
-import domain.blog.Section;
-import domain.blog.ImmutableAuthor;
-import domain.blog.Blog;
+import domain.blog.*;
+
+import javax.sql.DataSource;
public class SqlSessionTest extends BaseDataTest {
private static SqlSessionFactory sqlMapper;
+ private static DataSource blogDataSource;
+
@BeforeClass
public static void setup() throws Exception {
- createBlogDataSource();
+ blogDataSource = createBlogDataSource();
final String resource = "org/apache/ibatis/parser/MapperConfig.xml";
final Reader reader = Resources.getResourceAsReader(resource);
sqlMapper = new SqlSessionFactoryBuilder().build(reader);
@@ -196,10 +197,23 @@
try {
Blog blog = (Blog) session.selectOne("com.domain.BlogMapper.selectBlogJoinedWithPostsAndAuthor", 1);
Assert.assertEquals("Jim Business", blog.getTitle());
- Assert.assertEquals(2, blog.getPosts().size());
- Assert.assertEquals("Corn nuts",blog.getPosts().get(0).getSubject());
- Assert.assertEquals(101,blog.getAuthor().getId());
- Assert.assertEquals("jim",blog.getAuthor().getUsername());
+
+ final Author author = blog.getAuthor();
+ Assert.assertEquals(101, author.getId());
+ Assert.assertEquals("jim",author.getUsername());
+
+ final List<Post> posts = blog.getPosts();
+ Assert.assertEquals(2, posts.size());
+
+ final Post post = blog.getPosts().get(0);
+ Assert.assertEquals(1, post.getId());
+ Assert.assertEquals("Corn nuts", post.getSubject());
+
+ final List<Comment> comments = post.getComments();
+ Assert.assertEquals(1, comments.size());
+
+ final Comment comment = comments.get(0);
+ Assert.assertEquals(1, comment.getId());
} finally {
session.close();
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml?rev=733421&r1=733420&r2=733421&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml Sat Jan 10 22:46:27 2009
@@ -22,30 +22,67 @@
</select>
<resultMap id="joinedAuthor" type="domain.blog.Author">
- <id column="id" property="id" />
- <result property="username" column="username" />
- <result property="password" column="password" />
- <result property="email" column="email" />
- <result property="bio" column="bio" />
- <result property="favouriteSection" column="favourite_section" />
+ <id property="id" column="author_id" />
+ <result property="username" column="author_username" />
+ <result property="password" column="author_password" />
+ <result property="email" column="author_email" />
+ <result property="bio" column="author_bio" />
+ <result property="favouriteSection" column="author_favourite_section" />
</resultMap>
- <resultMap id="joinedPost" type="domain.blog.Post">
- <id column="id" property="id" />
+ <resultMap id="joinedComment" type="domain.blog.Comment">
+ <id property="id" column="comment_id" />
+ </resultMap>
+
+ <resultMap id="joinedTag" type="domain.blog.Tag">
+ <id property="id" column="tag_id" />
</resultMap>
+ <resultMap id="joinedPost" type="domain.blog.Post">
+ <id property="id" column="post_id" />
+ <result property="subject" column="post_subject"/>
+ <association property="author" column="post_author_id" resultMap="joinedAuthor"/>
+ <collection property="comments" column="post_id" resultMap="joinedComment"/>
+ <collection property="tags" column="post_id" resultMap="joinedTag"/>
+ </resultMap>
<resultMap id="blogJoinedWithPostsAndAuthor" type="Blog">
- <id property="id" column="id" />
- <result property="title" column="title" />
- <association property="author" column="author_id" resultMap="selectAuthorWithInlineParams"/>
- <collection property="posts" column="id" resultMap="joinedPost" />
+ <id property="id" column="blog_id" />
+ <result property="title" column="blog_title"/>
+ <association property="author" column="blog_author_id" resultMap="joinedAuthor"/>
+ <collection property="posts" resultMap="joinedPost" />
</resultMap>
- <select id="selectBlogJoinedWithPostsAndAuthor" parameterType="int" resultMap="blogWithPosts">
- select * from Blog B
- inner join Post P on B.id = P.blog_id
- inner join Author A on B.author_id = A.id
+ <select id="selectBlogJoinedWithPostsAndAuthor" parameterType="int" resultMap="blogJoinedWithPostsAndAuthor">
+ select
+ B.id as blog_id,
+ B.title as blog_title,
+ B.author_id as blog_author_id,
+ A.id as author_id,
+ A.username as author_username,
+ A.password as author_password,
+ A.email as author_email,
+ A.bio as author_bio,
+ A.favourite_section as author_favourite_section,
+ P.id as post_id,
+ P.blog_id as post_blog_id,
+ P.author_id as post_author_id,
+ P.created_on as post_created_on,
+ P.section as post_section,
+ P.subject as post_subject,
+ P.body as post_body,
+ C.id as comment_id,
+ C.post_id as comment_post_id,
+ C.name as comment_name,
+ C.comment as comment_text,
+ T.id as tag_id,
+ T.name as tag_name
+ from Blog B
+ left outer join Author A on B.author_id = A.id
+ left outer join Post P on B.id = P.blog_id
+ left outer join Comment C on P.id = C.post_id
+ left outer join Post_Tag PT on PT.post_id = P.id
+ left outer join Tag T on PT.tag_id = T.id
where B.id = #{id}
</select>