本文主要是介绍Hibernate 之实体表关系设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Hibernate 之实体表关系设计
前言:
在Hibernate 中多表之间关系如何设计?
一般的实体设计,我们比较系统的是会用rose或EA设计好,表并且和表之间的关系。
(1)类的实体,实体中的属性
(2)每个实体类之间的关联关系
关联关系用集合,比如:部门中有很多的用户;
系统中设计步骤:
(1) 实体中添加代码:
按照上面例子,三个实体User,Role和Department,于实体中添加代码:
(2)Hibernate映射中编辑:
其实上面的所有实体和实体关系都可以用 Rose 或EA自动生成的:
根据EA图看出实体之间关系,在Hibernate中怎么设计呢? Role,User,Department
步骤:
第一步写注释;
第二步代码模板;
第三步填充代码;
模板如下:
注意:多对一是,外键在多的一方
<!-- parent属性,本类与Department(上级)的多对一 -->
<!-- <many-to-one
name="parent"自己属性名字
class="Department"关联的类名
column="parentId"关联的外键></many-to-one> --><many-to-one name="parent" class="Department" column="parentId"></many-to-one>
外键总结:
外键引用的那个列在主表中必须是主键列或者唯一列。
(1)1:n的肯定把外键建立在n的那张表上。
(2)1:1,一般要看谁是主表,谁是附属表,外键当然建立在附属表中。
(3)n:m的情况,需要建立一个关系表,两个原表和其关系分别是1:n,1:m
总结:
Hibernate中实体映射:
一,写注释
格式为:?属性,表达的是本对象于?的?关系
例如user实体中注释:“Department属性,本对象于Department的多对一”
二,考模板:
三,填空:
Name属性:属性名(注释中的第一问号)
Class属性:关联实体属性类型,(注释中的第二个问号)
Column属性:
(1)<many-to-one column=”..”>:一般可以写成属性名加Id后缀,如属性为department,则column值写成:departmentId
(2)一对多中的<keycolumn=”..”>:从关联的对方(对方多对一)映射中把column值拷贝过来。
(3)多对多中<keycolumn=”..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId
(4)多对多中的<many-to-manycolumn=”..”>:一般可以谢伟关联对象的名称加Id后缀。
这篇关于Hibernate 之实体表关系设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!