2011-03-18 42 views
6

我想創建這將部分地依賴於政府部門TIGER的應用程序/條數據線形狀文件,其中有定義的記錄佈局的位置:JPA和修飾模式

http://www.census.gov/geo/www/tiger/tgrshp2010/TGRSHP10AA.pdf

我的想法是要使用Decorator模式將基礎Feature類與所有數據類型共有的字段一起使用,然後通過各個要素類型(州,縣,國會區等)的裝飾器模式對其進行擴展。但是,我打算使用Google App Engine進行託管,因此我必須通過JDO或JPA來執行此操作。我更喜歡JPA。

我可以繪製裝飾物件嗎?我的想法是基礎要素類將使用@Entity進行註釋,然後擴展將包含特定於裝飾對象的映射字段。由於GAE數據存儲不是RDBMS,我想我可以逃避它。

+0

鏈接似乎爲我打破自動櫃員機,但我會盡量給一些建議。如何將數據存儲在Google的數據存儲區上,主要取決於您計劃如何在應用中對其進行建模,以及您計劃如何查詢數據。您可以使數據模型越簡單,就越容易。上次嘗試時,我發現使用JPA over Datastore建立正確的實體關係令人討厭。您還需要記住JPA如何告訴數據存儲來存儲數據。條目是否在同一個實體組中?這些決定會影響讀取,寫入/交易和寫入頻率。 – aglassman 2012-06-01 15:06:26

回答

4

如果您使用裝飾模式,這意味着您使用的組成。所以你可以做的只是把你想要裝飾的班級標記爲,並在你的裝飾者中標記你的裝飾班級爲Embedded

如果你喜歡使用繼承,你的基類不是一個實體,因爲它只是你想要繼承的東西,而不是自己存儲的數據庫。要創建將從其他實體繼承的基本類,有以下注釋:@MappedSuperclass

根據GAE docs,都支持。

希望它有幫助!