关于hibernate注解的用法

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注解的用法)