JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Object Relational Mapping » Hibernate  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
己加入精華區
by browser at 2007-03-30 02:21
本主題所含的標籤
無標籤
作者 分層設計的一些疑問 [精華]
ffmm





發文: 46
積分: 0
於 2007-03-29 01:31 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
HI 各位先進
小弟近日有些疑問想請教各位,是關於 layer design 的一些問題
目前小弟的架構是有分成
view/presentation<-->web controller<--> service <--> data access

其中 data access 是利用 hibernate 來進行
小弟的疑惑是 假設我們有一個 domain object 叫做 Category
而 Category 又可以包含 Category (目錄底下還有目錄 parent/children 關係)
於是我把 parent category 的 children mapping 設定 lazy=true
按照常見做法 這種 collection 的 mapping 用 lazy
那麼今天透過 controller 透過 service 向 dao 取得一個 category 的時候
children 是 lazy load 的狀態 這個時候呼叫了
parent.children 就會發生 lazyInitializationException
我看了很多論壇文章跟說法 就是使用 openSessionInView 這種模式
旦不解的是 如果今天開發的這個 API 是給其他客戶使用來 embed
別人不一定可以為了你掛上 那個 OpenSessionInView Filter
那麼從取出來的 Category 他的 children collection 又是 lazy 的狀態
的的確確 你的 Category object 又有 chldren 這個 property 可以存取
無法禁止使用這個 API 的人不去使用
使用又會發生 exception
那這個時候 分層設計 應該怎麼解決這個問題
小弟想了想似乎在 Hibernate In Action 一書中 作者稱為 evil 的 DTO
似乎是一個方法 也就是把 Category 這個 Domain object 再轉成
CategoryDTO (或是 CategoryVO) 然後丟出去給 controller 或是 view 使用
請問這種做法是否又回到了過去 EJB 那種 smell?
因為小弟看到的 opensource 系統
清一色都是不管這個問題 反正撈出來的 detached hibernate object 就往前丟
而開發 controller 或是 view 的人員也都不會出現我剛剛說的
誤用了物件 lazy 的 property ...
或是乾脆直接掛 OpenSessionInView 這類的東西
請問各位實務開發先進 design 這樣的東西 其 service 接口 應該如何設計?
還是要從 service 這一層出去的東西 都應該把 lazy 的東西填滿起來在丟出去?
不曉得這樣描述是否太混亂~~~~
期待高人指點一二


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
12572 [精華] 分層設計的一些疑問 ffmm 1272 2007-03-29 01:31
10833 Re:分層設計的一些疑問 cw1057 1120 2007-03-29 09:24
10635 Re:分層設計的一些疑問 ffmm 1312 2007-03-29 10:47
11380 Re:分層設計的一些疑問 koji 500 2007-03-29 10:09
10622 Re:分層設計的一些疑問 ffmm 1239 2007-03-29 10:57
11304 Re:分層設計的一些疑問 koji 1036 2007-03-29 12:09
10496 Re:分層設計的一些疑問 ffmm 2143 2007-03-29 14:15
10447 Re:分層設計的一些疑問 koji 529 2007-03-29 17:29
10439 Re:分層設計的一些疑問 ffmm 1433 2007-03-29 19:30
11024 Re:分層設計的一些疑問 ingramchen 2036 2007-03-29 23:01
10442 Re:分層設計的一些疑問 ffmm 1240 2007-03-30 10:20
10529 Re:分層設計的一些疑問 ingramchen 2214 2007-03-30 11:05
10430 Re:分層設計的一些疑問 koji 230 2007-03-29 22:54
10393 Re:分層設計的一些疑問 ffmm 325 2007-03-30 09:52
10510 Re:分層設計的一些疑問 dnho 36 2007-04-01 16:16
10325 Re:分層設計的一些疑問 koji 234 2007-04-03 20:59
10054 Re:分層設計的一些疑問 dnho 60 2007-04-22 04:39
9972 Re:分層設計的一些疑問 koji 259 2007-04-22 09:01
11889 Re:分層設計的一些疑問 ingramchen 194 2007-04-22 09:54
7968 Re:分層設計的一些疑問 pipp 495 2008-01-07 10:16
7961 Re:分層設計的一些疑問 koji 51 2008-01-07 10:19
7974 Re:分層設計的一些疑問 pipp 68 2008-01-07 10:34
7937 Re:分層設計的一些疑問 pipp 150 2008-01-07 11:04
7922 Re:分層設計的一些疑問 koji 111 2008-01-07 11:06
7938 Re:分層設計的一些疑問 pipp 244 2008-01-07 11:16
7991 Re:分層設計的一些疑問 koji 221 2008-01-07 11:45
3890 Re:分層設計的一些疑問 winddknight 256 2011-02-28 17:44
3814 Re:分層設計的一些疑問 starlin 92 2011-06-12 19:15
7259 Re:分層設計的一些疑問 silence_1214 164 2008-05-22 03:35
» JWorld@TW »  Object Relational Mapping » Hibernate

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8