使用Felix,JPA,Aries和Hibernate在OSGi容器中外化persistence.xml orm属性

时间:2015-09-21 06:28:59

标签: hibernate jpa osgi aries

我目前正在进行一个项目的大型重构,目标是在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;

感谢您的帮助!

0 个答案:

没有答案