我目前正在对一个项目进行大型重构,目标是在 OSGi 容器中使用 JPA Aries 来实现持久性(而不是普通的旧 J2EE 堆栈)。
目前到目前为止一切顺利,我正在遵循您网站上的 tasklit 蓝图(它是托管 jpa)示例的指导,一切正常(我使用的是 felix 5,带有 aries jpa 2.1 版本和 hibernate 4.3+ 作为 orm )
我正在尝试使解决方案尽可能地可配置,目前我的 persistence.xml 如下所示:
<persistence-unit name="Audit" transaction-type="JTA">
<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/audit)</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
我已经使用带有 configAdmin 的 blueprint-cm 将 dataSource 配置外部化,因此对于 dataSource 它运行良好。
但是现在我只剩下红色的这些属性(如 hibernate.dialect),你认为将它们外部化的最优雅的方式是什么?
请注意,我的 entityManager 是这样注入的:
/**
* EntityManager, injected by blueprint jpa.
*/
@PersistenceContext(unitName = "Audit")
private EntityManager entityManager;
谢谢你的帮助!