@OnoToOne&@JoinColumn&@OneToMany&@JoinTable&@ManyToMany

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(多对多)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,711评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,540评论 6 13
  • 这肯定不是我人生的第一次送礼 却是我第一次自己送礼 不知道小时候爸妈有在老师那打点过 估计没有 补习班都没上过 找...
    SecretPlant阅读 337评论 0 0
  • 密林父子颜值撑起一片天。我爱冷cp.冷cp爱我 小叶子大美人。瑟爹暂不贴
    kungs阅读 393评论 0 3
  • TCP协议:保证传输层可靠传输,同时做数据控制。
    大魔王是本人阅读 79评论 0 0

友情链接更多精彩内容