如何动态修改java属性?

时间:2014-04-11 10:32:27

标签: java spring hibernate jpa properties

我正在寻找在安装过程中如何控制java属性的方法。

我的应用程序中有Spring Data JPA + Hibernate。我在bean中配置了jpa属性。并将其移至属性文件。

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml"></property>
    <property name="persistenceUnitName" value="hibernatePersistenceUnit"/>
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
    </property>
    <property name="jpaPropertyMap">
        <map>
            <entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl}"/>
            <entry key="hibernate.show_sql" value="${hibernate.show.sql}" />
            <entry key="hibernate.dialect" value="${hibernate.dialect}" />
        </map>
    </property>
</bean>

属性文件:prop-local-override.properties其中local是环境变量。

hibernate.hbm2ddl=update
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.show.sql=true

所以,一切正常。但我想在安装过程中更改hibernate.hbm2ddl。我使用rpm包来安装我的应用程序。例如,我想将此属性设置为&#34; create&#34;当应用程序正在安装时并在每次重启后返回更新。

看起来-Dhibernate.hbm2ddl = update工作正常。但它是手工工作。有没有人知道如何自动制作它,没有像Puppet这样的大工具?

谢谢, Sergii K。

1 个答案:

答案 0 :(得分:0)

之前从未尝试动态更改此内容,但您可以从实体管理器访问该属性映射:

entityManager.getEntityManagerFactory()。的GetProperties()