ORM(Hibernate)方法基础学习
百度广告
依赖对象通过调用被依赖对象的方法来获得服务。一种比较松散的关系,并且是短期的。我们的过程与对象往往依赖与我们的实体域对象。如在struts 的 action中调用模型层的方法。
2. 关联
3. 聚合
4. 组合
注:既然聚合,组合关系属于关联关系,那么如何区分一般关联关系,聚合关系和组合关系呢?
聚合关系:一种强关联关系,它要求有部分和整体的关系,并且没有了整体部分也可以独立存在。在上面三个例子中人和它的猫显然没有部分和整体的关系,所以只能是一般的关联关系。而黑豹乐队和窦魏,窦魏等人组成了黑豹乐队即:窦魏和黑豹是整体和部分的关系。而
组合关系:一种更强的整体和部分的关系。它并且要求代表整体的对象负责代表部分的对象的生命周期,组成关系是不能共享的。如:pc机和显示器的关系。
我觉得:如果两个实体是整体和部分的关系,那么它们到底是聚合还是组合,这取决于你的需求。比如说:pc机和显示器的关系,如果你的系统中,显示器脱离了pc机就不存在意义了,也可以说:所有显示器的访问都是通过pc机进行的,那么你可以把关系设定为组合(如你在为一个只买品牌机的代理商作系统你可能是可以这么作的)。如果你的显示器脱离的pc机仍然可以独立存在,也就是说在系统中可以直接访问显示器对象,那么你可以将关系设为聚合(如你在为一个买散件的代理商作系统你可能是可以这么作的)
5. 继承
(二)关系数据库的关系
一对多
多对多
(三)o/r mapping策略
对于继承关系一般有三种策略:
共享主键
需要添加一个识别字段
不支持多态查询
2.1一对一
策略1:唯一的外键
注意:生成方式需要用:foreign
2.3多对一(无需多说)
策略1:A,B表多对多的关系需要引入C表。
C表中不可以有其他属性
A,B对象多对多的关系需要引入C对象。使得A,B两对象与C对象的关系为一对多。对应数据库中:A,B表多对多的关系需要引入C表。A,B两表与C表的关系为一对多。
C表中又非主键的外键分别参照A,B两表。
如;学生 ,课程为多对多的关系 那么引入学生选课。
2.5其他
特别的:当用到组合关系的是否我们可用用到hibernate的"组件".由于"组件"它完全可以满足组成关系的强关联。
一般不在实体域对象中体现。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>