五、一对多关系映射(回归一个班级只有多个学生)
1、 基于外键关联的单向一对多关联
<set name=”students”>
<key column=”clazz_id” not-null=”true”/>
<one-to-many class=”Student”/>
</set>
2、 基于连接表的单向一对多关联 应该优先被采用。请注意,通过指定unique="true",我们可以把多样性从多对多改变为一对多。
<set name=”students” table=”t_studentclazz”>
<key column=”clazz_id”/>
<many-to-many column=”student_id” unique=”true” class=”clazz”/>
</set>
六、单向多对多关联
1、基于连接表的单向多对多关联,修改上述一对多去掉unique=”true”即可
七、双向关联
1、 一对多(one to many) / 多对一(many to one),双向多对一关联是最常见的关联关系。(这也是标准的父/子关联关系)
<class name=”student”>
<id name=”id” column=”student_id”>
<generator class=”native”/>
</id>
<many-to-one name=”clazz” column=”clazz_id” not-null=”true”/>
</class
<class name=”clazz”>
<id name=”id” column=”clazz_id”>
<generator class=”native”/>
</id>
<set name=”students” inverse=”true”>
<key column=”clazz_id”/>
<one-to-many class=”Student”/>
</set>
</class>
如果你使用List(或者其他有序集合类),你需要设置外键对应的key列为 not null,让Hibernate来从集合端管理关联,维护每个元素的索引(通过设置update="false" and insert="false"来对另一端反向操作)。假若集合映射的<key>元素对应的底层外键字段是NOT NULL的,那么为这一key元素定义not-null="true"是很重要的。不要仅仅为可能的嵌套<column>元素定义not-null="true",<key>元素也是需要的。
2、 一对一(one to one)
(1)、外键关联的双向一对一关联
<class name=”student”>
<id name=”id” column=”student_id”>
<generator class=”native”/>
</id>
<many-to-one name=”clazz” column=”clazz_id” unique=”true” not-null=”true”/>
</class>
<class name=”clazz”>
<id name=”id” column=”clazz_id”>
<generator class=”native”/>
</id>
<one-to-one name=”student” property-ref=”clazz”/>
</class>
(2)、基于主键关联的一对一关联需要使用特定的id生成器。
<class name=”student”>
<id name=”id” column=”student_id”>
<generator class=”native”/>
</id>
<one-to-one name=”clazz” />
</class>
<class name=”clazz”>
<id name=”id” column=”clazz_id”>
<generator class=”foreign”>
<param name=”property”>student</param>
</generator>
</id>
<one-to-one name=”student” constrained=”true”/>
</class>
分享到:
相关推荐
javaSE回顾总结,学习笔记,查漏补缺。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态...
通过这样的季度回顾总结,营销总监和总经理能够全面理解公司的业务表现,识别成功因素,发现问题,并据此制定下一季度的策略和计划。此外,此模板的易用性使得快速制作专业报告成为可能,节省了准备汇报的时间,提高...
在“项目管理培训精彩回顾及总结”中,我们可以深入探讨项目管理的核心概念、流程和在中国的具体实践。项目管理是一门涉及计划、组织、领导和控制资源以实现特定目标的学科。在中国,由于其独特的商业环境和文化背景...
项目总结与回顾.xmind
标题中的“我的大学记忆——大学生生活回顾总结ppt模板”表明这是一个关于个人大学经历的PPT模板,用于回顾和总结大学时光。这样的模板通常包含多个部分,如自我介绍、学习历程、社团活动、友情与爱情、成长感悟等,...
本次的"项目管理培训回顾及总结"主要探讨了项目管理中的关键原则、常见误区以及决策层和项目经理的职责。 首先,项目管理的核心理念是“以终为始”,即在开始项目之前要清晰地定义目标。对于专业管理人士来说,真正...
在企业运营过程中,半年度回顾总结报告是评估和规划未来工作的重要工具。它帮助企业了解过去六个月的业务表现,找出成功之处与不足,并为下半年的工作提供方向。以下是对这份"企业半年度回顾总结报告模板"中六个核心...
【标题】:“2012工作回顾总结PPT模板.ppt”是一份专门用于年度工作总结的演示文稿,旨在帮助用户系统地回顾和呈现过去一年的工作成果与经验。通过使用这样的模板,个人或团队可以清晰地展示他们在2012年的各项关键...
6个维度28个方面回顾总结.zip"的压缩包提供了一个全面的框架,帮助我们系统地进行半年度的工作总结。以下是根据标题和描述中提到的6个维度和28个方面的详细介绍,以及它们在IT领域的应用和重要性。 1. **目标达成**...
15-5 回顾与总结 (2).mp4
难点总结回顾.md
【大学生个人总结回顾范文】 大学生个人总结回顾是对个人在大学期间学习、生活、工作和成长经历的全面反思和总结。这种回顾有助于个人了解自身的优势和不足,为未来的发展规划提供参考。以下是一些主要的知识点: ...
股权分置改革的回顾与总结
本项目是基于Javascript的Tomorrow-Will-Be-Better丝绸之路倡议回顾与总结设计源码,包含82个文件,其中包括42个PNG文件、20个JavaScript文件、6个CSS文件、5个SCSS文件、2个Markdown文件、2个XLSX文件、2个MAP文件...
个人回顾工作总结范文.doc
个人回顾工作总结范本.pdf
19 联想管理 联想项目管理培训回顾及总结.pptx
庆祝六一活动总结回顾.doc
配合吴恩达老师的机器学习视频使用,构建知识脉络,回顾总结复盘。 监督学习部分: 单变量线性回归(Linear Regression with One Variable) 多变量线性回归(Linear Regression with Multiple Variables) 逻辑...