1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.lazyload_common_property;
17
18 import java.io.Reader;
19
20 import org.apache.ibatis.BaseDataTest;
21 import org.apache.ibatis.io.Resources;
22 import org.apache.ibatis.session.SqlSession;
23 import org.apache.ibatis.session.SqlSessionFactory;
24 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
25 import org.junit.jupiter.api.BeforeAll;
26 import org.junit.jupiter.api.Test;
27
28 class CommonPropertyLazyLoadTest {
29
30 private static SqlSessionFactory sqlSessionFactory;
31
32 @BeforeAll
33 static void initDatabase() throws Exception {
34 try (Reader reader = Resources
35 .getResourceAsReader("org/apache/ibatis/submitted/lazyload_common_property/ibatisConfig.xml")) {
36 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
37 }
38
39 BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
40 "org/apache/ibatis/submitted/lazyload_common_property/CreateDB.sql");
41 }
42
43 @Test
44 void testLazyLoadWithNoAncestor() {
45 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
46 ChildMapper childMapper = sqlSession.getMapper(ChildMapper.class);
47
48 childMapper.selectById(1);
49 }
50 }
51
52 @Test
53 void testLazyLoadWithFirstAncestor() {
54 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
55 FatherMapper fatherMapper = sqlSession.getMapper(FatherMapper.class);
56 ChildMapper childMapper = sqlSession.getMapper(ChildMapper.class);
57
58 fatherMapper.selectById(1);
59 childMapper.selectById(1);
60 }
61 }
62
63 @Test
64 void testLazyLoadWithAllAncestors() {
65 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
66 GrandFatherMapper grandFatherMapper = sqlSession.getMapper(GrandFatherMapper.class);
67 FatherMapper fatherMapper = sqlSession.getMapper(FatherMapper.class);
68 ChildMapper childMapper = sqlSession.getMapper(ChildMapper.class);
69
70 grandFatherMapper.selectById(1);
71 fatherMapper.selectById(1);
72 childMapper.selectById(1);
73 }
74 }
75
76 @Test
77 void testLazyLoadSkipFirstAncestor() {
78 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
79 GrandFatherMapper grandFatherMapper = sqlSession.getMapper(GrandFatherMapper.class);
80 ChildMapper childMapper = sqlSession.getMapper(ChildMapper.class);
81
82 grandFatherMapper.selectById(1);
83 childMapper.selectById(1);
84 }
85 }
86 }