帮助,我想我的持久性xml属性值引用我的db.properties文件。
这是我的db.properties文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/apsas
jdbc.username=root
jdbc.password=password
这是我当前的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="apsaspu" transaction-type="RESOURCE_LOCAL">
<provider>
org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/apsas" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="password" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
我想要做的是将其属性设置为像这样
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="apsaspu" transaction-type="RESOURCE_LOCAL">
<provider>
org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property name="hibernate.connection.driver_class" value="${jdbc.driver}" />
<property name="hibernate.connection.url" value="${jdbc.url}" />
<property name="hibernate.connection.username" value="${jdbc.username}" />
<property name="hibernate.connection.password" value="${jdbc.password}" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
问题是我如何将属性文件导入到持久性xml中 感谢那些能帮助我的人......
答案 0 :(得分:5)
如果您使用的是maven,则可以使用源过滤。使用this docs作为参考。我将概述一下这个过程。
您需要指定过滤路径。我不确定您是否必须明确定义包含的文件。
<build>
...
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
...
</resources>
...
</build>
您定义的目录是相对于pom.xml
。
您现在可以定义常规maven属性来替换persistence.xml
如果要将属性放在单独的.properties文件中,则需要告诉maven,在哪里可以找到该文件:
<filters>
<filter>db.properties</filter>
</filters>
在mvn resources:resources
上进行过滤。此步骤是针对您将在部署时执行的所有打包目标定义的。
您可以使用maven配置文件在属性集或.properties文件之间切换。