Skip to content

Commit 2f6023e

Browse files
committed
added a few change
1 parent 50e2f10 commit 2f6023e

File tree

7 files changed

+85
-29
lines changed

7 files changed

+85
-29
lines changed

src/main/java/org/apache/ibatis/annotations/Many.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
*
3939
* @return the id that retrieves result map.
4040
*/
41-
String resultMapId() default "";
41+
String resultMap() default "";
4242
/**
4343
* Returns the statement id that retrieves collection.
4444
*

src/main/java/org/apache/ibatis/annotations/One.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
*
3939
* @return the id that retrieves result map.
4040
*/
41-
String resultMapId() default "";
41+
String resultMap() default "";
4242
/**
4343
* Returns the statement id that retrieves single object.
4444
*

src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -565,9 +565,9 @@ private void applyResults(Result[] results, Class<?> resultType, List<ResultMapp
565565
}
566566

567567
private String nestedResultMapId(Result result) {
568-
String resultMapId = result.one().resultMapId();
568+
String resultMapId = result.one().resultMap();
569569
if (resultMapId.length() < 1) {
570-
resultMapId = result.many().resultMapId();
570+
resultMapId = result.many().resultMap();
571571
}
572572
if (!resultMapId.contains(".")) {
573573
resultMapId = type.getName() + "." + resultMapId;
@@ -576,10 +576,10 @@ private String nestedResultMapId(Result result) {
576576
}
577577

578578
private boolean hasNestedResultMap(Result result) {
579-
if (result.one().resultMapId().length() > 0 && result.many().resultMapId().length() > 0) {
579+
if (result.one().resultMap().length() > 0 && result.many().resultMap().length() > 0) {
580580
throw new BuilderException("Cannot use both @One and @Many annotations in the same @Result");
581581
}
582-
return result.one().resultMapId().length() > 0 || result.many().resultMapId().length() > 0;
582+
return result.one().resultMap().length() > 0 || result.many().resultMap().length() > 0;
583583
}
584584

585585
private String nestedSelectId(Result result) {

src/test/java/org/apache/ibatis/submitted/annotion_many_one_add_resultmapid/CreateDB.sql

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ role_name varchar(10)
1010
-- Records of role
1111
-- ----------------------------
1212
INSERT INTO role (id,role_name)
13-
VALUES ('1', '老师');
13+
VALUES ('1', 'teacher');
1414
INSERT INTO role (id,role_name)
15-
VALUES ('2', '学生');
15+
VALUES ('2', 'student');
1616
INSERT INTO role (id,role_name)
17-
VALUES ('3', '班主任');
17+
VALUES ('3', 'Headmaster');
1818
INSERT INTO role (id,role_name)
19-
VALUES ('4', '学习委员');
19+
VALUES ('4', 'Learning-commissary');
2020

2121
CREATE TABLE user (
2222
id int,
@@ -27,13 +27,13 @@ username varchar(32),
2727
-- Records of user
2828
-- ----------------------------
2929
INSERT INTO user (id,username)
30-
VALUES ('1', '赵六');
30+
VALUES ('1', 'James Gosling');
3131
INSERT INTO user (id,username)
32-
VALUES ('2', '李四');
32+
VALUES ('2', 'Doug Lea');
3333
INSERT INTO user (id,username)
34-
VALUES ('3', '毛六');
34+
VALUES ('3', 'Rod johnson');
3535
INSERT INTO user (id,username)
36-
VALUES ('4', '王五');
36+
VALUES ('4', 'Juergen Hoeller');
3737

3838
-- ----------------------------
3939
-- Table structure for `user_role`

src/test/java/org/apache/ibatis/submitted/annotion_many_one_add_resultmapid/MyBatisTest.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,36 +29,48 @@ static void setUp() throws Exception {
2929
}
3030

3131
@Test
32-
void test() {
32+
void testFindAll() {
3333
try (SqlSession sqlSession = sqlSessionFactory.openSession()){
3434
UserDao mapper = sqlSession.getMapper(UserDao.class);
35-
List<User> users = mapper.flindAll();
35+
List<User> users = mapper.findAll();
3636
Assertions.assertNotNull(users, "users must not be null");
3737
Assertions.assertEquals(4, users.size(), "should return 4 results");
3838
Assertions.assertEquals(2, users.get(0).getRoles().size(), "should have 2 roles");
3939
}
4040
}
4141

4242
@Test
43-
void test2() {
43+
void testFindAll2() {
4444
try (SqlSession sqlSession = sqlSessionFactory.openSession()){
4545
UserDao mapper = sqlSession.getMapper(UserDao.class);
46-
List<User> users = mapper.flindAll2();
46+
List<User> users = mapper.findAll2();
4747
Assertions.assertNotNull(users, "users must not be null");
4848
Assertions.assertEquals(4, users.size(), "should return 4 results");
4949
Assertions.assertEquals(2, users.get(0).getRoles().size(), "should have 2 roles");
5050
}
5151
}
5252

5353
@Test
54-
void test3() {
54+
void testFindAll3() {
5555
try (SqlSession sqlSession = sqlSessionFactory.openSession()){
5656
UserDao mapper = sqlSession.getMapper(UserDao.class);
57-
List<User> users = mapper.flindAll3();
57+
List<User> users = mapper.findAll3();
5858
Assertions.assertNotNull(users, "users must not be null");
5959
Assertions.assertEquals(2, users.size(), "should return 2 results");
60-
Assertions.assertEquals(1, users.get(0).getRoles().size(), "should have 1 roles");
61-
Assertions.assertEquals("老师", users.get(0).getRoles().get(0).getRoleName(), "should have 1 roles");
60+
Assertions.assertNotNull(users.get(0).getRole(), "role must not be null");
61+
Assertions.assertEquals("teacher", users.get(0).getRole().getRoleName(), "roleName should be teacher");
62+
}
63+
}
64+
65+
66+
@Test
67+
void testFindHeadmaster() {
68+
try (SqlSession sqlSession = sqlSessionFactory.openSession()){
69+
UserDao mapper = sqlSession.getMapper(UserDao.class);
70+
User headmaster = mapper.findHeadmaster();
71+
Assertions.assertNotNull(headmaster, "users must not be null");
72+
Assertions.assertEquals(3, headmaster.getTeachers().size(), "should return 3 results");
73+
Assertions.assertEquals("Doug Lea", headmaster.getTeachers().get(0).getUsername(), "userName should be lisi");
6274
}
6375
}
6476

src/test/java/org/apache/ibatis/submitted/annotion_many_one_add_resultmapid/User.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,19 @@
66
public class User {
77
private Integer id; //int
88
private String username; //varchar
9+
private List<User> teachers;
10+
private Role role;
911
private List<Role> roles;
1012

13+
public Role getRole() {
14+
return role;
15+
}
16+
17+
public void setRole(Role role) {
18+
this.role = role;
19+
}
20+
21+
1122
@Override
1223
public String toString() {
1324
return "User{" +
@@ -40,4 +51,11 @@ public List<Role> getRoles() {
4051
public void setRoles(List<Role> roles) {
4152
this.roles = roles;
4253
}
54+
public List<User> getTeachers() {
55+
return teachers;
56+
}
57+
58+
public void setTeachers(List<User> teachers) {
59+
this.teachers = teachers;
60+
}
4361
}

src/test/java/org/apache/ibatis/submitted/annotion_many_one_add_resultmapid/UserDao.java

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ public interface UserDao {
2424
@Results({
2525
@Result(id = true,column="id",property = "id"),
2626
@Result(column="username",property = "username"),
27-
@Result(property = "roles",many = @Many(resultMapId = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap1"))
27+
@Result(property = "roles",many = @Many(resultMap = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap1"))
2828
})
29-
public List<User> flindAll();
29+
public List<User> findAll();
3030

3131
@Select("select\n" +
3232
" u.id,u.username,r.id role_id,r.role_name\n" +
@@ -36,19 +36,45 @@ public interface UserDao {
3636
@Results({
3737
@Result(id = true,column="id",property = "id"),
3838
@Result(column="username",property = "username"),
39-
@Result(property = "roles",many = @Many(resultMapId = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap2"))
39+
@Result(property = "roles",many = @Many(resultMap = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap2"))
4040
})
41-
public List<User> flindAll2();
41+
public List<User> findAll2();
4242

4343
@Select("select\n" +
4444
" u.id,u.username,r.id role_id,r.role_name\n" +
4545
" from user u\n" +
4646
" left join user_role ur on u.id =ur.user_id\n" +
4747
" left join role r on ur.role_id = r.id where u.id in (2,3)")
48-
@Results({
48+
@Results(
49+
{
4950
@Result(id = true,column="id",property = "id"),
5051
@Result(column="username",property = "username"),
51-
@Result(property = "roles",one = @One(resultMapId = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap2"))
52+
@Result(property = "role",one = @One(resultMap = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap2"))
53+
})
54+
public List<User> findAll3();
55+
56+
@Select("select id teacher_id,username teacher_name from user")
57+
@Results(
58+
id = "userMap",
59+
value = {
60+
@Result(id = true,column="teacher_id",property = "id"),
61+
@Result(column="teacher_name",property = "username"),
5262
})
53-
public List<User> flindAll3();
63+
public List<User> justUseResult();
64+
65+
@Select("select\n" +
66+
"u.id,u.username,r.id role_id,r.role_name,ut.id teacher_id,ut.username teacher_name\n" +
67+
"from user u\n" +
68+
"left join user_role ur on u.id =ur.user_id\n" +
69+
"left join role r on ur.role_id = r.id\n" +
70+
"left join user ut on ut.id != u.id\n" +
71+
"where role_id = 3"
72+
)
73+
@Results({
74+
@Result(id = true,column="id",property = "id"),
75+
@Result(column="username",property = "username"),
76+
@Result(property = "role",one = @One(resultMap = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap2")),
77+
@Result(property = "teachers",many = @Many(resultMap = "userMap")),
78+
})
79+
public User findHeadmaster();
5480
}

0 commit comments

Comments
 (0)