2011-08-11 57 views
0

我在我所定義的EAR項目是否有可能爲EJB jar定義默認的persistence-context-ref?

  • 僅含有欲堅持的實體「持久性」 JAR(和persistence.xml中)
  • 含有活性成分的EJB JAR

當在EAR部署這些組件(使用Maven插件內置),我總是得到

org.glassfish.deployment.common.DeploymentException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [base-entities] in the scope of the module called [ear-0.0.1-SNAPSHOT#ejbs-0.0.1-SNAPSHOT.jar]. Please verify your application.

我該如何解決這個問題?我首先想到了爲整個EJB jar(在ejb-jar.xml中)定義persistence-context-ref,但似乎並不可行。那麼,我應該寫一個連接到第一個的輔助persistence.xml

+0

持久性上下文引用是否有持久性單元名?以什麼方式爲整個EJB jar定義一個持久化上下文引用的幫助(例如,在EE6應用程序服務器中使用java:模塊)? –

+0

@bkail你能否進一步解釋你的觀點?我對這些方面並不那麼自信。 – Riduidel

+0

persistence.xml包含。相應的應該有一個 pu。 javaee_6.xsd說,「一個可選的持久性單元名稱,如果未指定,則假定默認的持久性單元。」我不是JPA專家,所以我不知道如何指定「默認持久性單元」。 –

回答

0

就像它看起來一樣愚蠢(之後),解決這個問題的最簡單方法是在EJB jar中放入一個persistence.xml,它複製最初的一個。實際上,據我所知,EAR將加載來自EJB模塊(而不是來自JAR)的持久化元素。因此,EJB模塊必須定義persistence.xml配置文件。

相關問題