比如同时有User.java和Card.java两个类
User.java如下:
public class User{
private Card card_one;
private List<Card> card_many;
}
在映射card_one属性时用association标签, 映射card_many时用collection标签.
所以association是用于一对一和多对一,而collection是用于一对多的关系
下面就用一些例子解释下吧
association-一对一
人和身份证的关系
下面是pojo
|
1
2
3
4
5
|
{
;
;
//省略set和get方法.
}
|
|
1
2
3
4
5
6
7
8
9
|
{
;
;
;
;
//人和身份证是一对一的关系
;
//省略set/get方法.
}
|
下面是mapper和实现的接口
|
1
2
3
4
5
6
7
|
;
;
{
;
}
|
|
1
2
3
4
5
6
7
8
9
|
?>
mapper
>
>
>
#{id}
>
>
|
|
1
2
3
4
5
6
7
|
;
;
{
;
}
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
?>
mapper
>
>
>
>
>
>
>
>
>
>
>
#{id}
>
>
|
PersonMapper.xml 还使用association的分步查询。
同理多对一,也是一样
只要那个pojo出现private Card card_one;
即使用association
collection 一对多和association的多对一关系
学生和班级的一对多的例子
pojo类
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
;
;
;
{
;
;
;
//班级与学生是一对多的关系
;
//省略set/get方法
}
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
;
;
{
;
;
;
;
//学生与班级是多对一的关系
;
//省略set/get方法
}
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
?>
mapper
>
>
>
#{id}
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
1
2
3
4
5
6
7
|
;
;
{
;
}
|
ClazzMapper使用到了集合-collection 即为一对多,一个班级面对多个学生
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
?>
mapper
>
>
>
#{id}
>
>
#{id}
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
1
2
3
4
5
6
7
|
;
;
{
;
}
|
StudentMapper则是与班级为多对一关系,所以使用了关联-association
嗯,希望我以后又不记得二者的关系时,能感谢现在总结的自己