我正在寻找在安装过程中如何控制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。
答案 0 :(得分:0)
之前从未尝试动态更改此内容,但您可以从实体管理器访问该属性映射:
entityManager.getEntityManagerFactory()。的GetProperties()