2014-01-10 128 views
1

我試圖將單一的ERP分解成模塊(銷售,庫存,財務...),以便它們可以作爲一個單元出售或以任何一種組合形式出售。 由於我使用JPA,所以在處理外鍵時會出現問題,因爲它們被表示爲集合。 如果每個模塊在一個單獨的jar文件中都有自己的一組實體,它們之間的關係如何?我應該擺脫FK的?如果是這樣,繼續與JPA合作有什麼意義?JPA模塊化和實體關係

+1

你能舉個例子嗎?對我而言,如果它有FK關係,無論如何你都不能將兩個實體分開。我處理這個問題的方式是運送(完整)模型並根據需要添加控制器/視圖。 – mabi

+0

您在什麼環境下銷售包裝?那是Java EE嗎? –

+0

我想盡量不分割實體,但將它們作爲一個共享模塊的一部分。顯然它也將保留一個數據庫。 – Gimby

回答

1

我覺得你有三個選擇,沒有一個是防彈:

  1. 分享莫名其妙共同的實體。例如,很明顯每個包中都使用了Customer實體。當然,最好的方法是將所有實體打包到一個實體jar中,並在銷售其他包時提供它。畢竟你出售的是商業邏輯,而不是實體映射。

  2. 做一些醜陋的抽象,擺脫FKs。這樣你將不得不改變代碼。例如,可以使用嵌入式(relatedEntityClass,relatedEntityId)來代替與其他模塊的實體相關聯。例如,使用此解決方案時,您需要加入/急切加載其他實體時會遇到問題。

  3. 銷售整個代碼並使用一些密碼/在線激活來啓用模塊。

+0

是否有可能在JPA中進行抽象? – fmjb

+0

我的意思不是標準的抽象,而是一種解決方法。看到我更新的答案(對於第三個選項)。 –

+0

選項3是我們迄今爲止的工作方式。我想要做的不是將版本發佈給不使用該特定版本中涉及的任何功能的客戶 – fmjb