美文网首页springboot
@OnoToOne&@JoinColumn&@O

@OnoToOne&@JoinColumn&@O

作者: 蹙眉大傻 | 来源:发表于2018-06-07 14:37 被阅读855次

1、@OneToOne(一对一,单向关联)

1)targetEntity属性标时关联的实体类,默认为当前标注的实体

2)cascade属性表示与此实体一对一关联的实体的联级样式类型。联级样式上当对实体进行操作时的策略。

    其中,在定义关系时,经常会考虑是否要定义cascade属性的问题。

    若不定义,则对关系表不会产生影响;

    定义为:CasacdeType.PERSIST,级联新建;

    定义为:CascadeTypE.REMOVE,级联删除;

    定义为:CascadeType.REFRESH,级联刷新;

    定义为:CascadeType.MERGE,级联更新;

    定义为:CascadeType.ALL,表示选择上述四种。

3)fetch属性表示该实体的加载方式,有LAZY和EAGER两种方式

    3.1)FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载

    3.2)FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载

4)optional属性表示关联的实体是否能够存在null值,默认为true,表示可以存在null值。如果为false,则要同时使用@JoinColumn标记。

5)mappedBy属性用于双向关联实体时,标注在不保存关系实体中

2、@JoinColumn(关联指定列)

JoinCloumn用于注释表中的字段,与Column不同的是它要保存表与表之间关系的字段。

1)name属性用来标记表中对应字段名称,

      若果不设置name,则默认name=关联表名称+“_”+关联表主键名称

2)一般情况下,关联的实体的主键用来作外键。如果不想使用主键作为外键,则使用referencedColumnName。

3、OneToMany(一对多,单向)

1)targetEntity属性表示默认关联的实体类型,默认为当前标注的实体类

2)其他属性与@OneToMany相同

4、@JoinTable(表关联)

1)name属性为连接两个表的表名称,若不指定,则使用默认的表名称,格式如下:

        "表名1"+"_"+"表名2";

2)joinColumn属性表示,在保存关系的表中,所保存关联关系的外键的字段,并配合@JoinColumn标记使用

3)inverseJoinColumn属性与joinColumn类似,它保存的是保存关系的另外一个外键字段

4)catalog和schema属性表示实体指定点目录名称或数据库名称

5)uniqueConstraints属性表示该实体所关联的唯一约束条件,一个实体可以有多个唯一约束条件,默认没有约束

5、@ManyToMany(多对多)

相关文章

  • @OnoToOne&@JoinColumn&@O

    1、@OneToOne(一对一,单向关联) 1)targetEntity属性标时关联的实体类,默认为当前标注的实体...

  • o o o

    o o o

  • O(∩_∩)O~~

    因为你,我想成为一个更努力的人 ——侧耳倾听 恰如人生聚散, 相遇多珍惜, 离别不纠缠, 随缘而处就是最好...

  • o . o

  • O(∩_∩)O

    囤了好多素材 却始终没有时间写 趁着在地铁上还有点空闲 ——贵在坚持O(∩_∩)O

  • 🌿 o(≧▽≦)o 🌿

  • O(∩_∩)O

    ╮(╯▽╰)╭

  • o>_

  • O(∩_∩)O

    命运善嫉,总吝啬赋予世人恒久的平静,总猝不及防地把人一下子塞进过山车,任你怎么恐惧挣扎也不肯轻易停下来,非要把圆满...

  • o O

    曾经的我们有这样一种冲动, 看来郭敬明的小说想当作家, 听了杰伦的新歌想当歌唱家, 我们应该怎样才可以活的更漂亮。

网友评论

    本文标题:@OnoToOne&@JoinColumn&@O

    本文链接:https://www.haomeiwen.com/subject/xcawsftx.html