2009-10-13 32 views
1

我在OSGi容器中運行eclipselink,我的實體類位於它們自己的包中。eclipselink無法自動檢測實體類的原因是什麼?

我曾多次遇到Eclipselink無法自動檢測實體類的問題,從而導致「Xyz不是已知的實體類型」消息。這對調試來說很痛苦,而且我的無能爲力的方法是或多或少地隨意調整配置文件,直到它工作。

我希望我知道更系統的方法,但我似乎不太瞭解可能的問題原因。他們會是什麼?是否有關於自動檢測中發生的情況的概述以及它需要什麼工作?

因此,如果您自己遇到問題並且能夠確定一個具體原因,請將其發佈到此處,或者在您已經看到它時進行投票。這樣我們就可以生成一個按頻率排序的典型問題列表。我將添加我實際解決的問題。

事實我知道:

  • 的EclipseLink使用OSGi的擴展模式監聽束登記,然後設置起來
  • 它理應使用的類加載器定義持久性單元的包,如果你'使用persistence.xml進行配置,這是該文件應該位於的包。
+0

難道你看不到有關EclipseLink查找/註冊實體類的日誌中的任何內容嗎? – SteveD 2009-10-13 17:22:29

+0

我不是說它應該這樣做,因爲我不知道EclipseLink,但重要的生命週期事件的體面記錄似乎是使用它的重要幫助。 – SteveD 2009-10-13 17:26:34

+1

嗯,它確實發出了一些關於各種東西的日誌消息,但是對於我的問題,我所得到的只是「這不是我認識的實體,而是讓我一個人待着」。 – 2009-10-21 15:18:46

回答

0

具有實體類的包在其清單中沒有正確的JPA-PersistenceUnits標頭。這個頭文件是eclipselink發現有一個持久化單元需要處理的。

如果列出你的類明確地使它工作,錯誤/丟失的標題不是你的問題。

0

實體類未在持久性單元的配置和persistence.xml明確列出(或任何配置機制使用)不取決於你是否運行Java SE或EE上exclude-unlisted-classes參數設置爲false(,它可能是默認的)。

如果有助於明確列出您的類,這可能是您的問題。

1

eclipselink jpa不能持久擴展實體類的類的對象。這些擴展類本身應該是實體類。

相關問題