我目前正在进行一个项目的大型重构,目标是在OSGi容器中使用JPA Aries进行持久化(而不是普通的旧J2EE堆栈)。
目前到目前为止一切顺利,我正在遵循您的网站上的任务蓝图(它是托管jpa)示例的指导,一切正常(我使用felix 5,使用aries jpa 2.1版本和hibernate 4.3 + as 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>
我已经使用blueprint-cm和configAdmin将dataSource配置外部化,因此对于dataSource来说它运行良好。
但是现在我把这些属性留给了红色(比如hibernate.dialect),你觉得将它们外化的最优雅方式是什么?
请注意,我的entityManager是这样注入的:
/**
* EntityManager, injected by blueprint jpa.
*/
@PersistenceContext(unitName = "Audit")
private EntityManager entityManager;
感谢您的帮助!