2010-11-25 63 views
0

這是一個奇怪的要求,如果可能或不可以,我正在考慮它。第二個想法是,如果它是一個可行的設計決定與否。在多個grails應用程序客戶端之間共享grails應用程序域插件並唱出域類的子集

下面是這種情況:

我們有大約160個表組成的數據庫。 我們在遺留數據庫之上創建了一個Grails ORM插件。

現在我們有不同的應用程序(插件)誰會使用這個orm插件。

每個應用程序都可以獨立運行,也可以與其他應用程序結合使用。

每個應用程序主要使用插件中設計的完整ORM模型的子集。

爲了運行應用程序獨立,我只想創建一個獨立的數據庫,其中包含應用程序所需的表格,而不是160個表格的整個數據庫。但是,由於獨立應用程序依賴於上面定義的ORM插件,是否可以或不可以只有一個表的子集,或者我需要創建完整的數據庫模式?

讓我知道是否需要任何進一步的細節來理解這個問題。

感謝, 阿拉姆謝爾

回答

0

您可以在src/groovy文件夾中聲明ORM映射的域類,因此不會映射插件中的任何內容,然後在最終應用程序中擴展必要的類。將使用在src中聲明的映射。

這增加了額外的複雜性,但是確實如此。

+0

您可以向我展示一個樣本或鏈接,它已完成嗎?這看起來很有趣。 – 2010-11-25 13:23:41

0

我建議拆分的ORM插件安裝到單獨的「子ORM」插件。當然這些「sub-orm」插件可能依賴於其他的「sub-orm」插件。 「sub-orm」插件之間的分界線應該由商業領域來定義。

然後,每個「部分」應用程序可能對其範圍內所需的「sub-orm」插件有依賴性。 在這種情況下,傳遞依賴關係解析是有價值的。

通常需要注意的是,如果多個不同的應用程序同時訪問同一個數據庫,則存在從Hibernate獲取鎖定異常的風險。

+0

對目標應用程序表格的需求可能會有所不同,因此需要爲每個子應用程序更改相應的子插件。子插件依賴關係也將發生不可預測的變化。 並且鑑於Grails使用樂觀鎖定,普通的Grails工具不會處理併發衝突嗎? – 2010-11-25 12:57:41

相關問題