我有一台与我需要测试的数据库对话的服务器。我使用Hibernate连接到数据库并使用Gradle管理依赖项。我想在MySql中使用单独的表进行生产和测试。所以我目前在hibernate.cfg.xml中有这一行:
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/production_database</property>
但我真正想要的是它是这样的:
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/${DATABASE_NAME}</property>
然后当我运行gradle test
时,DATABASE_NAME可以设置为“test_database_name”,当我运行gradle jettyRun
时,它仍然是“production_database”。这看起来应该是可能的,但是当我谷歌“hibernate teplating”时,我会得到一些名为HibernateTemplate的东西,这与我想要的东西无关。什么语法会让我发生这种情况?
答案 0 :(得分:1)
您应该将该属性移出hibernate.cfg.xml,并移至database.properties文件中。
然后,您可以使用gradle根据参数修改此文件。
请参阅Gradle Tasks。
ant.propertyfile(
file: "database.properties") {
entry( key: "connectionurl", value: "somevalue")
}