天天看點

hibernate 注解 自動建表 中間表問題mappedBy

情景:我的畢設有這麼個關系,一個歌手對應多首歌,多個專輯,以及一個專輯對應多首歌都是一對多的關系

hibernate 注解 自動建表 中間表問題mappedBy
hibernate 注解 自動建表 中間表問題mappedBy
hibernate 注解 自動建表 中間表問題mappedBy

2.運作完,自動建表

hibernate 注解 自動建表 中間表問題mappedBy

不難發現多了三張中間表

3.其實是沒必要的

原因:缺少

mappedBy

mappedBy: 

1>隻有OneToOne,OneToMany,ManyToMany上才有mappedBy屬性,ManyToOne不存在該屬性; 

2>mappedBy标簽一定是定義在被擁有方的,他指向擁有方; 

3>mappedBy的含義,應該了解為,擁有方能夠自動維護跟被擁有方的關系,當然,如果從被擁有方,通過手工強行來維護擁有方的關系也是可以做到的; 

4>mappedBy跟joinColumn/JoinTable總是處于互斥的一方,可以了解為正是由于擁有方的關聯被擁有方的字段存在,擁有方才擁有了被擁有方。mappedBy這方定義JoinColumn/JoinTable總是失效的,不會建立對應的字段或者表。

稍加修改,删除建的表重新生成:

hibernate 注解 自動建表 中間表問題mappedBy
hibernate 注解 自動建表 中間表問題mappedBy

中間表沒有了:

hibernate 注解 自動建表 中間表問題mappedBy

繼續閱讀