我使用JPA持续为我的数据模型与的EclipseLink作为持久性提供。 我有一个模块化的(OSGi的)应用程序和模块中的一个包含了标准数据模型和持久性单元自动包括从包中的所有实体。 持久性提供者是在另一个模块,效果很好。
现在我想第三个模块,某些实体添加到持久性单元。 我怎么做? 我发现这个解决方案 ,这似乎是具体的,而我使用的不是春天。 这一方法的摘要是写一个后处理器挂钩到持久性单元的处理和手动合并<class>
从条目persistence.xml
文件。
是否有可能合并持久化单元? 任何人都可以提出一个解决办法?
首先,这里是一个链接动态JPA他们提供一种方式来动态地更新实体。 我会先探讨这个选项。
这里是另一个链接( PDF从OSGi的),也有少数顶级图表处理的持久性和可能有用的EntityManagerFactory的。
一个有趣的方法 ,但可能是无关
这里是一个链接programmaticly创建持久性单元 ,而无需使用persistence.xml文件(你不能真正做到,但答案提供了一些有识之士的问题)。 philk提供了关于如何从persistence.xml文件中删除供应商的建议。 如果按照这个方法,你可以到你的企业合并形成一个特定的持久性单元。
“好了Hibernate中的美好时光,我可以只创建一个会话,我的类添加到它的飞行。似乎从未进入太阳JPA规范。不过,我已经完全移除了persistence.xml中的供应商,并把它使用EMF的属性EL。这似乎是工作确定。留在persistence.xml中的唯一的事情是类的规范,我想也不会太硬,以暴露解析类名在EL的方法和创建它的ClassDescriptor作为EL JPA提供商的公共方法“。
最后,我们来的hackish的解决方案,这样做已经提出,只是在事后编辑您的persistence.xml文件。 我相信这会工作(虽然我还没有尝试过),但它绝对是一个选项。
我有一个设置,其中一个WAR文件中包含persistence.xml文件。 这里已经描述的解决方案应该是JAR的,战争年代和EAR的使用。 JPA 2.0:从不同的罐子添加实体类PersistenceUnit *自动