我在应用程序中同时使用Liquibase
库和Hibernate
库。它们都使用相同的数据库,但每个都需要自己的properties
文件。但是,某些特定于数据库的字段是通用的。我想避免重复这些字段并将它们放在两个文件中。我希望将这些属性放在Liquibase和Hibernate属性文件将从中读取的单个文件中。
目前我有。
liquibase.properties
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb
username: root
password: root
休眠.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.hbm2ddl.auto">none</property>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/mydb</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
请注意驱动程序,URL,用户名和密码如何在这两个文件中重复。理想情况下,我会有一些这样的第三个文件。
数据库属性
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb
username: root
password: root
然后是类似的东西。
liquibase.properties
driver: ${driver}
url: ${url}
username: ${username}
password: ${password}
休眠.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.hbm2ddl.auto">none</property>
<!-- Database connection settings -->
<property name="connection.driver_class">${driver}</property>
<property name="connection.url">${url}</property>
<property name="connection.username">${username}</property>
<property name="connection.password">${password}</property>
这样的事情可能吗?
这是一个SO答案(和问题(,显示了如何将hibernate db config放在属性文件中: https://stackoverflow.com/a/25685198/332248
以下是有关 liquibase 如何为 liquibase 设置属性文件的文档(使用 --defaultsFile
选项(: http://www.liquibase.org/documentation/command_line.html
因此,应该可以将所有内容合并到一个hibernate.properties文件中,然后在运行liquibase时指定相同的文件。