`
coolstar648
  • 浏览: 46198 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

HIBERNATE 方法小结

阅读更多
(一)对象之间的关系:
1. 依赖:
依赖对象通过调用被依赖对象的方法来获得服务。一种比较松散的关系,并且是短期的。我们的过程与对象往往依赖与我们的实体域对象。如在Struts 的 action中调用模型层的方法。
2. 关联
它使一个类指到另一个类的属性。长期的
3. 聚合
聚合关系是关联关系的一种,是强的关联关系。聚合是整体和部分之间的关系。
4. 组合
也叫合成关系,组成关系是关联关系的一种,是比聚合关系强的关系。对象负责代表部分的对象的生命周期。
注:既然聚合,组合关系属于关联关系,那么如何区分一般关联关系,聚合关系和组合关系呢?
一般关联:只要一个对象联系到另外一个对象就形成了关联关系。如:人和他的猫,黑豹乐队和窦魏,pc机和显示器。
聚合关系:一种强关联关系,它要求有部分和整体的关系,并且没有了整体部分也可以独立存在。在上面三个例子中人和它的猫显然没有部分和整体的关系,所以只能是一般的关联关系。而黑豹乐队和窦魏,窦魏等人组成了黑豹乐队即:窦魏和黑豹是整体和部分的关系。而
窦魏脱离了黑豹(早就离开了)更或者黑豹不存在了那么窦魏仍然可以以音乐人的身份存在(即对象仍然可以独立存在)所以它属于聚合关系。组成关系是可以共享的。(窦魏也可以加入其他乐队)。
组合关系:一种更强的整体和部分的关系。它并且要求代表整体的对象负责代表部分的对象的生命周期,组成关系是不能共享的。如:pc机和显示器的关系。
我觉得:如果两个实体是整体和部分的关系,那么它们到底是聚合还是组合,这取决于你的需求。比如说:pc机和显示器的关系,如果你的系统中,显示器脱离了pc机就不存在意义了,也可以说:所有显示器的访问都是通过pc机进行的,那么你可以把关系设定为组合(如你在为一个只买品牌机的代理商作系统你可能是可以这么作的)。如果你的显示器脱离的pc机仍然可以独立存在,也就是说在系统中可以直接访问显示器对象,那么你可以将关系设为聚合(如你在为一个买散件的代理商作系统你可能是可以这么作的)
5. 继承
这个我不想多讲了,用过面向对象的语言都应该知道。
(二)关系数据库的关系
一对一
一对多
多对一
多对多
(三)o/r mapping策略
1.继承:
对于继承关系一般有三种策略:
策略1继承树的每个类对应一个表<joined-subclass >
共享主键
策略2继承树的根类对应一个表<discriminator ><subclass >
需要添加一个识别字段
策略3继承树的叶子类对应一个表
不支持多态查询
2.关联
2.1一对一
一半有两种策略:
策略1:唯一的外键
<many-to-one>+unique=”true” (唯一的外键)
<one-to-one>
策略2:共享主键
<one-to-one>
<one-to-one><constrained=”true”> (既是主键又是外键)
注意:生成方式需要用:foreign
2.2一对多(无需多说)
2.3多对一(无需多说)
2.4多对多
策略1:A,B表多对多的关系需要引入C表。
C表中的所有属性即为主键又为外键分别参照A,B两表。
C表中不可以有其他属性
策略2:将多对多拆分成两个一对多:
A,B对象多对多的关系需要引入C对象。使得A,B两对象与C对象的关系为一对多。对应数据库中:A,B表多对多的关系需要引入C表。A,B两表与C表的关系为一对多。
C表又自己的主键
C表中又非主键的外键分别参照A,B两表。
C表中不可以有其他属性
如;学生 ,课程为多对多的关系 那么引入学生选课。
注意:策略1和策略2的不同在于:策略2引入了新的对象而策略1没有。这是因为这样:策略1的c表不能又自己的东西。而策略2有。
2.5其他
上面说过:聚合与组成是关联的一种所以他们也符合以上策略。
特别的:当用到组合关系的是否我们可用用到Hibernate的“组件”<component>.由于“组件”它完全可以满足组成关系的强关联。
3.依赖
一般不在实体域对象中体现。
分享到:
评论

相关推荐

    MAPPING Hibernate方法小结.doc

    【MAPPING Hibernate方法小结】 Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库。以下是对Hibernate中几种关键概念的详细解释: 1. **对象之间的关系**: - **...

    Hibernate分页查询小结

    Hibernate分页查询小结

    spring+hibernate出错小结

    NULL 博文链接:https://tcrct.iteye.com/blog/243252

    Hibernate的框架的总结

    本文详细介绍了Hibernate框架中的核心配置文件`hibernate.cfg.xml`及其配置项、映射文件`xxx.hbm.xml`,以及核心API如Configuration和SessionFactory的使用方法,并对C3P0连接池进行了简要说明。通过这些内容的学习...

    Hibernate 框架总结

    关于Hibernate的延迟加载机制,get方法和load方法在处理时有所不同: - get方法会先检查session缓存,如果没找到,再去二级缓存查找,最后才查询数据库。如果数据库中也没有相关记录,则返回null。 - load方法则...

    hibernate 学习笔记小结

    ### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...

    关于Clob类型在Hibernate中 的应用小结

    在Java世界中,尤其是在持久化框架Hibernate中,处理Clob类型的数据需要特别的方法和配置。 在Hibernate中,Clob类型的字段通常有两种处理方式: 1. **传统JDBC方式**: 在这种模式下,开发者需要直接操作Clob...

    hibernate小结

    ### Hibernate小结 #### 一、概述 在本篇文章中,我们将对Hibernate框架进行一个较为全面的小结。主要内容包括:Hibernate映射中的Lazy加载策略、Hibernate查询语言(HQL)的使用方法,以及一些基本配置与操作技巧...

    hibernate更新数据方法小结

    Session session=HibernateSessionFactory.getSession(); String sql=”from Usertable as user where user.username=?”; Query q=session.createQuery(sql); q.setString(0,username); List l=q.list(); Iterator...

    Hibernate操作Oarcle中Clob、Blob字段小结

    这篇博客文章“Hibernate操作Oracle中Clob、Blob字段小结”可能会探讨如何在Hibernate中有效地处理这两种类型的数据。 1. **Clob与Blob的理解**: - Clob:Clob是用于存储大量字符数据的类型,例如长篇文章、XML...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对Oracle Clob在Hibernate中应用的详细总结: 3.1 传统的JDBC方式: 在没有使用ORM框架之前,我们通常...

    Struts2+Hibernate+Spring项目小结――Hibernate部分

    在构建企业级应用时,常常会采用Struts2、Hibernate和Spring这三种技术进行整合,形成SSH框架。这里我们主要讨论SSH项目中的Hibernate部分,它是一个强大的对象关系映射(ORM)框架,使得开发者可以方便地将数据库...

    关于Clob类型在Hibernate中的应用小结.doc

    关于Clob类型在Hibernate中的应用小结.doc

    Hibernate映射

    hibernate 映射关系 小结

    Struts2+Hibernate+Spring项目小结――Struts2部分总结

    "educationSelectItemInfos" executeResult="false" /&gt; ...在实际项目中,还需要结合Hibernate进行持久层操作,以及Spring进行依赖注入和事务管理,共同构建出完整的SSH(Struts2 + Hibernate + Spring)企业级应用。

Global site tag (gtag.js) - Google Analytics