来自单独捆绑包的JPA实体,它们使用来自主捆绑的一个连接

时间:2014-03-25 07:05:45

标签: java jpa osgi equinox eclipse-rap

我想将我的RAP应用程序拆分为单独的包。

第一个捆绑 - 是主要模块。它包含常用功能如导航菜单,打开数据库连接。 (数据库oracle)

其他bundle是插件模块,包含视图,jpa实体,业务逻辑。

每个应用程序,每个用户需要一个数据库连接,但我需要在单独的bundle和main模块中使用jpa-entities。我不需要每个插件都有数据库连接。

所有插件都可以与主模块实体一起使用。

只有插件可以与自编插件模块实体一起使用。

主模块不知道插件中的实体。

有可能吗?哪个框架可以帮助我?

对不起我的英文: - )

1 个答案:

答案 0 :(得分:1)

可以将实体类放在单独的包中,但是:

  • 您必须有一个persistence.xml文件,其中列出了所有实体类
  • 包含持久性单元的bundle必须导入实体类所在的包

简而言之:您可以在单独的模块中使用实体类,但是您必须有一个主要位置来收集PU的所有信息。

如果我理解你的问题,你想要一个包含PU但不知道实体类的主模块。对不起,这是不可能的。

<强>替代:

我们有类似的要求所以我们决定离开JPA并切换到Liquibase和QueryDSL 2组合。 Liquibase用于定义数据库模式,QueryDSL用于构造与数据库无关的SQL类型安全语句。使用JPA单词:没有实体类,只有静态元模型。

我们还开发了一些模块和maven插件来支持这些技术。它没有文档但是如果你对这个技术堆栈感兴趣,我可以提供更多细节。