首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Hibernate 逆向工程:實體類關聯生成是否強制要求資料庫外鍵?

     編輯:程式設計綜合問答

直接回答

是的,Hibernate 逆向工程生成實體類關聯 (OneToMany, ManyToOne 等) 時,預設依賴資料庫中定義的外鍵約束。 若資料庫無外鍵,生成的實體類將不包含關聯關係,僅為獨立類別。

為何不建議依賴資料庫外鍵?

  • 開發期靈活性降低:頻繁修改 Schema 需 DBA 介入,遷移腳本複雜。
  • 效能考量:外鍵檢查增加寫入開銷,高併發場景常移至應用層控制。
  • 分庫分表困難:跨庫外鍵無法建立,微服務架構下更不適用。

推薦做法:應用層維護關聯

  1. 資料庫僅建立索引,不建外鍵約束。
  2. 在實體類上手動添加 @OneToMany、@JoinColumn 等註解。
  3. Service 層透過事務邏輯保證資料一致性 (如級聯刪除、檢查引用完整性)。

結語

逆向工程適合快速啟動專案,但長期維護建議採用「資料庫無外鍵、應用層控制關聯」的架構,兼顧效能與彈性。

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