有對CMP relationship熟悉的朋友請進!

mengk發表於2003-11-11
自從EJB2.0推出以來,的確給程式設計師帶來了福音,無論是效能還是功能上都有較大提高。對我來說,最大的好處是,基本上可以不用自己寫BMP了,完全可以利用relationship進行多表操作,這的確大大提高了開發的效率,當然好處還有很多我在這就不一一列舉了。(不好意思,小弟丟了一段時間沒搞JAVA,對於EJB2.0還不是很熟悉,還請哪路高手賜教!)

1.首先我想問一個問題,如果在兩個一一對應的Entity Bean之間建立relationship,並且我要求關係是單向的,那麼應該在哪個Bean上新增relationship才是對的呢?
比如說:
我這裡有兩個Entity Bean,他們分別代表著道路的節點(RoadNode)和城市(City)。
道路節點有這樣幾個屬性:roadNodeId,code,name,cityId,description
城市的屬性如下:cityId,code,name,postal,....
我在Application做的客戶端,想透過findAllRoadNodes得到城市的name,並且在JTable上顯示。我現在想問的是在道路節點上新增relationship呢,還是在城市上新增relationship!
呵呵,可能有很多人和我一樣,為了得到城市的name而在RoadNode Entity Bean上新增relationship,可是這樣做是錯的,在部署的時候報錯!不信自己可以試試。我認為relationship應該在將cityId作為主鍵的Bean上新增,但是為了能夠讓客戶端訪問RoadNode Bean時就可以透過relatioship得到cityId對應的City name,必須將relationship改為雙向的。

我於是這樣做了,但是錯誤發生了,這次是才程式執行的時候發生的。我並沒有急於將name顯示在JTable裡,我想先看看,當我新增了relationship後,會不會對我原來已經正常的程式有沒有影響。結果,findAllRoadNodes到是對的,可findAllCitys就錯了,返回的錯誤資訊居然是“java.sql.Exception:無效的列名”,我暈!
不知哪位仁兄碰到過我這樣的情況,是否在此時遇到過這樣的錯誤!



相關文章