我正在寻找如何在安装过程中控制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 包来安装我的应用程序。例如,我想在安装应用程序时将此属性设置为“创建”。并在每次重启后返回更新。
看起来 -Dhibernate.hbm2ddl=update 工作正常。但这是手工作业。有谁知道如何在没有像 Puppet 这样的大型工具的情况下自动实现它吗?
谢谢, 谢尔盖·K.
最佳答案
以前从未尝试过动态更改此设置,但您可以从实体管理器访问该属性映射:
entityManager.getEntityManagerFactory().getProperties()
关于java - 如何即时修改 java 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23010131/