Re: [問題] hibernate 新手問題

看板java作者 (老子我最神)時間11年前 (2013/03/30 00:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
大家好,在 abola921 回文那天我就有看到了, 不過我最近有看一點sql的書 想為我之前的提問做個完整的推論,在此和大家分享 當然其中一定不會是 100% 正確的 如果有錯請歡迎指證... ------------------------------------------------------- SQL 語法本身是為了從 data 飾選出資料 例如 select * from mobile where phone_name = 'iphone' 資料庫會選好資料後,再進行 filter 的動作 ! 而 HQL 也是如此 Hibernate 是一個 ORM 模型,他是完整對應物件與資料庫data的實體關係 所以當 DBA 在資料庫下 select * from mobile where rownum <= 5 那麼他在 Hibernate 底下也應該寫出相應的 HQL 反倒若是使用 Hibernate 的一些 function 做 filter 相當奇怪 因為你基本上不會去修改資料庫的參數而達到 rownum <= 5 的要求 對於一個 ORM 模型來說,他所要求的是能跟資料庫對應,而不是加一堆 Filter 這樣 HQL 跟本身的 function 就衝突了 然後 lazy 的設置,因為他是 ORM,不是 SQL 產生器,當你 get 時 Hibernate 要讓表跟表完整對應 !! 若有 rownum 的需求,應該是下 HQL 而不是啟動整個表格... 所以若資料庫設計太差,那麼 hibernate 效能就會變差 就像資料庫效能會變差一樣 !! 以上,淺見 !! 歡迎討論 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 49.159.136.214 ※ 編輯: cyclone350 來自: 49.159.136.214 (03/30 00:17)
文章代碼(AID): #1HLRvQzA (java)
文章代碼(AID): #1HLRvQzA (java)