常用注解的使用

外键是何等?

近日,应该是十分久了遭遇那一个主题素材,一直认为不影响自身干活儿采取,就平素在奉行sql的时候跳过了,可是,心里一向有个疙瘩。明日把标题一举成功了,很兴奋,就把解决难点的有血有肉经过写一下,算是给和睦叁个记录。

1) 设计表方法

 

有关此难题的保有小说中,都说了那些主题素材应时而生的场地:向某张表A中插入数据,A表的某部字段m是外键,关联到了其余一张表B,由此发生了难题。

加中间表是为了缓慢解决多对多涉及,用中间表记录其他多个表的主键,进而实现多对多关系映射

只要有两张表:A,B。

消除措施唯有两种:

2) @JoinColumn(name=”wife_id”)

A表中有字段:c,d,e,f;  B表中有d,g,h,i。

率先要说的正是最不应有出现的难点:

连日来字段

那么,d字段就足以叫外键。对于A来讲,d是A的字段;对于B来说,d是B的主键。

数据类型长度不平等:即A表中的外键字段和B表中的被外键关联的字段数据类型长度差异。由此产生了问题,这些主题素材假使出现,小编感到建表的人得以找个没人的地点面壁思过一下。

指的是当前实体用来与别的实体做表连接的字段,wife_id也许是现阶段实体对应表的字段,也是有望是三回九转实体对应表的字段,但一定对应的是表的外键

背后二种状态能够归为一类:

在@OneToMany 和 @ManyToOne
所对应的实业对应表的外键有出入,原则上JoinColum对应的相应是在多的一方对应的表的外键

外键恐怕外键环中数据分裂:

3) 单向关系与双向关联

外键:A表的外键关联的为B表中的字段,则应该A有数量则B必有数量,A为空则B必为空,借使A中有多少,但B中广大据,就能够报错。

在A实体中,有B实体作为其成员变量,同有的时候候B实体中也可以有A实体作为其成员变量,那正是双向关联。唯有一方有对方实体作为成员变量,便是单向关系

外键环:A表的外键关联的为B表中的字段,B表中的字段又为外键关联C表中的字段。。。。。。,这一个进程中,出现外键数据不雷同的题目,就能够报错。

4) @OneToOne(mappedbBy=”wife”)

每一天进步一小点。

在A实体中,有B实体husband作为成员变量,在B实体中,有A实体wife作为其成员变量,那时,在A实体中的husband的get方法上宣称那几个注明,意思是A实体中的husband已经在B实体中的wife成员变量做了光彩夺目(mapped),即创设了从A实体到B实体的照耀关系。对应到表指的是,是通过B表建设构造的关联关系,即B表有外键指向A表的主键,B表是中央

推荐微信大伙儿号【脊椎骨血段】,记录普通的美好。

5) @JoinColumns

@JoinColumns(
    {
        @JoinColumn(name="wifeId", referencedName="id"),
        @JoinColumn(name="wifeName", referencedName="name")
    }
)