- Hibernate和數據庫表關聯關系的問題
-
我想問一下在實際的項目開發中,Hibernate的關聯關系和數據庫表的關聯關系需要同時建立嗎?就是既在持久化對象裡寫關聯關系又在數據庫裡建外鍵
最佳回答:
你好,這個問題也曾困擾過我,以下經驗與你分享:
- 引入Hibernate框架的意義是為了讓開發更靠近面向對象的思想,因此理論上需要使用的是面向對象的數據庫,但是現今未出現較好的OO數據庫, 所以使用關系型數據庫就一定會面臨偏離OO的部分。
- 按照OO理論,在Hibernate中,對象抽象成類,那麼數據庫的表結構也就出來了,因此不需對表直接操作,由Hibernate自動生成。但是實際開發 過程中理論畢竟是美好的,由於關系型數據庫中存在視圖,觸發器之類的功能,所以實際開發中,大部分是先設計表結構,後使用Hibernate進行 映射。
- Hibernate中的mapping是為了方便開發者以面向對象的方式操作數據庫,就看開發者需要用到什麼程度了,因需而定。有時若mapping與db對 應不上,會產生大問題。
基於以上三點,這個問題的答案我的回答是:只需在Hibernate中顯式定義關系,在配置文件中將hbm2ddl_auto的值設為update,數據庫可不必直接操作。