2012-03-18 70 views
3

我想在OSGi環境中使用EclipseLink。以編程方式在EclipseLink中創建<class>定義

我想要做的是構建一個將EntityManager暴露給其他包的提供程序包。

問題是,在編譯時無法確定實體類並將其寫入persistence.xml文件。所以我希望能夠以編程方式定義實體類。我可以掃描所有實體類,但據我所知,在EclipseLink中無法定義它,而在Hibernate中可能。 (休眠在OSGi環境中有一些不同的問題,所以我也不能使用它)

如何以編程方式定義實體類?

注意:使用彈簧不是我的選擇;並從頭開始定義ClassDescriptors是不可接受的。我必須說,在JPA和EclipseLink中都不支持這樣一個基本特性,這真的很愚蠢。

回答

1

你試過<jar-file>標籤在persistence.xml中嗎?

您可以將所有的持久化類打包到jar中,並將其包含到持久性單元包和持久性xml中。

JPA2規範中的更多詳細信息8.2.1.6.3

+0

如果我能做到這一點,我也可以添加類名到persistence.xml文件。任何bundle都可以有其持久化類,並且它們不能合併成一個。 – noego 2012-03-19 18:55:19

1

你試過嗎?

<exclude-unlisted-classes>false<exclude-unlisted-classes> 
+0

是的,但沒有機會。儘管有關在Java SE環境聲明中使用JPA的博客和文章,但此參數在SE環境中不起作用。 – noego 2012-03-19 18:51:15

相關問題