Skip to content

Commit 7de9420

Browse files
committed
Added failing test cases for #118. Still trying to find a solution. [ci skip]
1 parent bebc102 commit 7de9420

File tree

3 files changed

+74
-5
lines changed

3 files changed

+74
-5
lines changed

src/test/java/org/apache/ibatis/submitted/parent_reference_3level/BlogTest.java

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,20 @@
1515
*/
1616
package org.apache.ibatis.submitted.parent_reference_3level;
1717

18-
import static org.junit.Assert.assertEquals;
19-
import static org.junit.Assert.assertNotNull;
18+
import static org.junit.Assert.*;
2019

2120
import java.io.Reader;
2221
import java.sql.Connection;
2322
import java.sql.DriverManager;
2423

25-
import junit.framework.Assert;
26-
2724
import org.apache.ibatis.io.Resources;
2825
import org.apache.ibatis.jdbc.ScriptRunner;
2926
import org.apache.ibatis.session.SqlSession;
3027
import org.apache.ibatis.session.SqlSessionFactory;
3128
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
29+
import org.junit.Assert;
3230
import org.junit.Before;
31+
import org.junit.Ignore;
3332
import org.junit.Test;
3433

3534
public class BlogTest {
@@ -76,9 +75,11 @@ public void testSelectBlogWithPosts() {
7675
assertEquals("Blog with posts", result.getTitle());
7776
Assert.assertEquals(2, result.getPosts().size());
7877
Post firstPost = result.getPosts().get(0);
78+
Assert.assertEquals(1, firstPost.getBlog().getId());
7979
Assert.assertEquals(2, firstPost.getComments().size());
8080
Post secondPost = result.getPosts().get(1);
8181
Assert.assertEquals(1, secondPost.getComments().size());
82+
Assert.assertEquals(2, secondPost.getComments().get(0).getPost().getId());
8283
} finally {
8384
session.close();
8485
}
@@ -97,4 +98,40 @@ public void testSelectBlogWithoutPosts() {
9798
session.close();
9899
}
99100
}
101+
102+
@Ignore
103+
@Test
104+
public void testSelectBlogWithPostsColumnPrefix() {
105+
SqlSession session = sqlSessionFactory.openSession();
106+
try {
107+
Mapper mapper = session.getMapper(Mapper.class);
108+
Blog result = mapper.selectBlogByPrimaryKeyColumnPrefix(1);
109+
assertNotNull(result);
110+
assertEquals("Blog with posts", result.getTitle());
111+
Assert.assertEquals(2, result.getPosts().size());
112+
Post firstPost = result.getPosts().get(0);
113+
Assert.assertEquals(1, firstPost.getBlog().getId());
114+
Assert.assertEquals(2, firstPost.getComments().size());
115+
Post secondPost = result.getPosts().get(1);
116+
Assert.assertEquals(1, secondPost.getComments().size());
117+
Assert.assertEquals(2, secondPost.getComments().get(0).getPost().getId());
118+
} finally {
119+
session.close();
120+
}
121+
}
122+
123+
@Ignore
124+
@Test
125+
public void testSelectBlogWithoutPostsColumnPrefix() {
126+
SqlSession session = sqlSessionFactory.openSession();
127+
try {
128+
Mapper mapper = session.getMapper(Mapper.class);
129+
Blog result = mapper.selectBlogByPrimaryKeyColumnPrefix(2);
130+
assertNotNull(result);
131+
assertEquals("Blog without posts", result.getTitle());
132+
Assert.assertEquals(0, result.getPosts().size());
133+
} finally {
134+
session.close();
135+
}
136+
}
100137
}

src/test/java/org/apache/ibatis/submitted/parent_reference_3level/Mapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@
1818
public interface Mapper {
1919

2020
public Blog selectBlogByPrimaryKey(int aId);
21+
22+
public Blog selectBlogByPrimaryKeyColumnPrefix(int aId);
2123
}

src/test/java/org/apache/ibatis/submitted/parent_reference_3level/Mapper.xml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,34 @@
4848
<result column="comment" property="comment"/>
4949
<association property="post" resultMap="PostResultMap"></association>
5050
</resultMap>
51-
</mapper>
51+
52+
<select id="selectBlogByPrimaryKeyColumnPrefix" parameterType="int" resultMap="BlogResultMapColumnPrefix">
53+
select
54+
b.id as blog_id, b.title as blog_title,
55+
p.id as post_id, p.body as post_body,
56+
c.id as post_comment_comment_id, c.comment as post_comment_comment
57+
from blog b
58+
left outer join post p on b.id = p.blog_id
59+
left outer join comment c on p.id = c.post_id
60+
where b.id = #{id}
61+
</select>
62+
63+
<resultMap id="BlogResultMapColumnPrefix" type="Blog">
64+
<id column="blog_id" property="id" />
65+
<result column="blog_title" property="title"/>
66+
<collection property="posts" resultMap="PostResultMapColumnPrefix" columnPrefix="post_"></collection>
67+
</resultMap>
68+
69+
<resultMap id="PostResultMapColumnPrefix" type="Post">
70+
<id column="id" property="id" />
71+
<result column="body" property="body"/>
72+
<association property="blog" resultMap="BlogResultMapColumnPrefix"></association>
73+
<collection property="comments" resultMap="CommentResultMapColumnPrefix" columnPrefix="comment_"></collection>
74+
</resultMap>
75+
76+
<resultMap id="CommentResultMapColumnPrefix" type="Comment">
77+
<id column="comment_id" property="id" />
78+
<result column="comment" property="comment"/>
79+
<association property="post" resultMap="PostResultMapColumnPrefix"></association>
80+
</resultMap>
81+
</mapper>

0 commit comments

Comments
 (0)