gpt4 book ai didi

jpa - 如何合并/扩展来自不同 JAR 的持久性单元?

转载 作者:行者123 更新时间:2023-12-04 04:23:35 26 4
gpt4 key购买 nike

我将 JPA 持久性用于我的数据模型,并将 Eclipselink 作为持久性提供者。我有一个模块化 (OSGi) 应用程序,其中一个模块包含标准数据模型和一个持久性单元,该单元自动包含包中的所有实体。持久性提供程序位于另一个模块中,该模块运行良好。

现在我想要第三个模块将一些实体添加到持久性单元。我怎么做?我找到了this solution ,这似乎特定于我没有使用的 Spring。该方法的总结是编写一个 Hook 到持久性单元处理并手动合并<class>的后处理器。来自 persistence.xml 的条目文件。

是否可以合并持久性单元?有人可以提出解决方法吗?

最佳答案

首先,这是 Dynamic-JPA 上的链接它们提供了一种动态更新实体的方法。我会先探索这个选项。

这是来自 OSGi 的另一个链接 (PDF),其中有一些处理持久性和 EntityManagerFactory 的顶级图表可能有用。

一种有趣的方法,但可能不相关

这是 creating persistence units programmaticly 上的链接不使用persistence.xml 文件(你不能真正做到,但答案提供了对问题的一些见解)。 philk 提供了有关如何从 persistence.xml 文件中删除提供程序的建议。如果您遵循此方法,您可能能够将您的实体组合成一个特定的持久性单元。

“好吧,在 Hibernate 过去的美好时光里,我可以创建一个 session 并
即时将我的类(class)添加到其中。似乎从未进入 SUNs JPA
眼镜。但是我已经从
persistence.xml 并使用 EMF 的属性将其交给 EL。这
似乎工作正常。 persistence.xml 中唯一剩下的就是规范
的类。我想暴露方法不会太难
解析 EL 中的类名并为其创建 ClassDescriptor
作为 EL JPA Provider 的公共(public)方法。 "

最后,我们来到了骇人听闻的解决方案,已经提出了建议,只需在事后编辑您的 persistence.xml 文件。我相信这会奏效(尽管我还没有尝试过),但这绝对是一种选择。

关于jpa - 如何合并/扩展来自不同 JAR 的持久性单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com