hibernate的映射
Hibernate的映射分为一对一、一对多、多对一,多对多几种
其中映射包括外键的单/双向映射,主键的单/双向映射,联合主键映射等
关于一对一(One-to-one)的相关属性:
一对一关联映射:
主键关联
使用注解@PrimaryKeyJoinColumn定义了一对一关联.
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
cascade = CascadeType.ALL表明级联关系
外键关联,
使用外键列进行实体的关联.
@JoinColumn(name=“student_fk”)
@OneToOne(mappedBy = “”)
通过mappedBy属性进行声明.mappedBy的值指向主体的关联属性
mappedBy属性:
- 如果关系是单向的,则该关联提供程序确定拥有该关系的字段。
- 如果关系是双向的,则将关联相反(非拥有)方上的 mappedBy 元素设置为拥
- 有此关系的字段或属性的名称
一对多、多对一关联
通过many-to-one元素配置。
column 属性指明外键列;
unique 属性设置为 true,表明唯一约束;
cascade 属性设置为 all,表明删除 USER 时同时删除 PERSON。
many-to-one元素的属性:
name 属性:指定需映射的属性名;
column 属性:指定ORDER中的外键列名;
class 属性:指定所关联的类型。
mappedBy:表明是双向关联关系,并且与 user 建立对应。
targetEntity:指定了所关联的类型。
cascade:指定级联操作。
数据库的一对多关联属性:
外键参照关系,many方参照one方
Hibernate的单向一对多关联
Set、List、Map
Hibernate多对多关联映射
元素属性。
name属性:指定类的属性名;
table属性:指定多对多关联关系中间表;
cascade级联操作属性:save-update、delete、all、none。
子元素。
元素:设定实体类对应表的外键;
多对多关联
many-to-many元素中class属性:
设定关联类型。inverse 是 Hibernate 中双向关联关系中的基本概念,用来设置关系由哪一方来维护。
inverse=true 表示被控方,=false 表示主控方;
在多对多关系中需要设置哪一方为被控方,即设置inverse=true 。
例:
@ManyToMany
@JoinTable(name=“STUDENTCOURSE”,
joinColumns=@JoinColumn(name=“STUDENTID”),
inverseJoinColumns=@JoinColumn(name=“COURSEID”)
@ManyToMany:表明多对多关联关系。
@JoinTable
name:指定关联表。
joinColumns:指向实体对应表的外键。
inverseJoinColumns:指向所关联的实体对应表的外键。
@ManyToMany
mappedBy:表示关联关系由Student维护。
本文深入探讨了Hibernate框架中各种关联映射方式,包括一对一、一对多、多对一及多对多的关系处理,详细解释了外键关联、主键关联、级联操作等核心概念。
845

被折叠的 条评论
为什么被折叠?



