关系映射之间的关系是讲对象之间的关系,并不指数据库表的关系(外键关系),下面逐一分析解释。
多对一关联映射(User---->Group)
原理:在多的一端加入一个外键,指向一的一端。
举例:多个用户(User)属于某个用户组(Group)。


User对象的映射文件User.hbm.xml。
[html]
这是最常用的映射关系,在对象模型中是User对象持有Group对象的一个引用,在具体配置中, 多的一端(User)用
一对多关联映射(单向Classes---->Student)
原理:一对多关联映射和多对一关联映射原理一致,不同在于:多对一维护的关系是在加载多的一端时可以将一加载上来;一对多可以在加载一时将多加载上来。
举例:某个班级(Classes)有多位学生(Student)。


一的一端Classes的映射文件Classes.hbm.xml。
[html] view plaincopy
在对象模型中,一的一端(Classes)以集合Set的方式持有Student的引用(private Set students),在具体配置中,,


一的一端Classes映射文件Classes.hbm.xml。
[html]
多的一端Student的映射文件Student.hbm.xml。
[html] view plaincopy
这两个配置文件和上面介绍的映射关系相同,不多做介绍。值得注意的是Classes.hbm.xml中inverse属性,inverse属性可以用在一对多和多对多双向关联上,inverse属性默认为false,为false表示本端可以维护关系,如果inverse为true,则本端不能维护关系,会交给另一端维护关系,本端失效,所以一对多关联映射我们通常在多的一端维护关系,让一的一端失效,所以设置为inverse为true。
inverse和cascade的区别
* inverse是控制方向上的反转,只影响存储
* cascade是操作上的连锁反映