首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Hibernate 註解教程(八):關聯映射全解析

     編輯:Java 相關知識

一對一關聯映射

1. 單向主鍵關聯

使用 @OneToOne + @PrimaryKeyJoinColumn。生成 SQL:A 表含外鍵 b_id 指向 B 表主鍵。

2. 雙向關聯

  • 關聯方:@OneToOne(cascade=CascadeType.ALL) + @JoinColumn(name="b")
  • 被關聯方:@OneToOne(mappedBy="b")

生成 SQL:A 表含外鍵 b 指向 B 表主鍵。若缺少 mappedBy,被關聯方也會生成外鍵字段,形成雙向外鍵。

3. 自定義外鍵列名

默認外鍵列名為「屬性名_id」。可用 @JoinColumn(name="b") 指定。若不寫則用默認值。

4. 關聯非主鍵列

使用 @JoinColumn(referencedColumnName="bname") 關聯被關聯方非主鍵列(需該列唯一)。

5. 關聯表映射

使用 @JoinTable 定義中間表,包含雙向外鍵。

多對一關聯映射

與一對一相似,特殊情況:

  • 若被關聯方缺少 mappedBy,會產生中間表(如 B_A)
  • targetEntity 可關聯接口,實現面向接口編程

SQL 對比總結

不同註解組合生成的表結構差異巨大,需根據業務需求精確配置,避免產生冗餘外鍵或中間表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved