2013-01-15 49 views
1

在ORM和SQL編程之間的看似永恆的鬥爭中,出現了一個問題: 爲什麼不能同時使用?對大多數編程使用ORM,並編寫我自己的SQL查詢,用於更復雜的JOIN查詢和所選ORM無法執行的其他複雜查詢。有什麼不好的理由嗎?爲什麼不能同時使用ORM和SQL?

+0

這似乎很好,這就是我所做的。 – Daveo

回答

2

大多數ORM解決方案都支持原生SQL - 例如Hibernate

不合並兩者的原因是一致性 - 如果您必須理解從數據庫檢索數據並將它們轉換爲應用程序中的對象的兩種方式,則您有兩倍的機會記住,兩倍的機會對於錯誤和兩倍的測試(對於「連接到數據庫和檢索數據」代碼)。

實踐中發生的情況是,對ORM不熟悉的開發人員傾向於使用本機SQL,喜歡ORM工具的開發人員幾乎可以使用ORM層完成所有任務 - 這會使您的代碼庫難以維護和擴展。

如果你打算這樣做,我至少會強制執行「通過ORM工具執行SQL,而不是直接通過JDBC(或其他)」規則 - 這會至少給你一些一致性,你可以重用大量的對象映射功能。

理想情況下,選擇一個解決方案並堅持下去 - 對衝您的投注很少是免費的。

3

ORM生成的SQL大多數情況是未優化的。

建議在何處使用性能,使用ORM僅進行綁定並對所有查詢使用用戶定義的SQL。

+0

我在某處讀到ORM工具的生產者不推薦將這兩者結合起來,沒有提到任何理由。但是,當我谷歌,我幾乎沒有發現。 –

相關問題