带有多个持久性单元的Jpa persistence.xml

时间:2017-09-26 07:33:47

标签: java eclipselink maven-3 jpa-2.0 junit4

我在[{1}}上使用java 8 jpa 2项目(使用weblogic 12.2)。

该项目使用2个数据库。在EclipseLink我的src/main/resources/META-INF包含使用persistence.xml的2个持久性单元。

JTA data sources

它正在发挥作用。

现在进行单元测试,我在<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> <persistence-unit name="dmr_pu" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>dbDMR</jta-data-source> <class>...</class> </persistence-unit> <persistence-unit name="dmr_export_pu" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>dbDMREXPORT</jta-data-source> <class>...</class> </persistence-unit> </persistence> 中添加了一个persistence.xml,其中包含使用src/test/resources/META-INF的我的2个持久性单元到相同的数据库。

jdbc connections

<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> <persistence-unit name="dmr_pu" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>...</class> <properties> <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:db2://.../DMR"/> <property name="javax.persistence.jdbc.user" value="..."/> <property name="javax.persistence.jdbc.password" value="..."/> </properties> </persistence-unit> <persistence-unit name="dmr_export_pu" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>...</class> <properties> <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://...;databaseName=ExportDb"/> <property name="javax.persistence.jdbc.user" value="..."/> <property name="javax.persistence.jdbc.password" value="..."/> </properties> </persistence-unit> 中的第一个问题,Eclipse中的persistence.xml,它告诉我:定义了多个持久性单元 - 只识别第一个持久性单元

然后,当运行单元测试(使用src/main)时,与JUnit db的连接正在工作(使用JDBC),但对于1st:无法获取数据源[dbDMREXPORT]。它尝试使用src / main中定义的持久性单元,而不是src / test中的持久性单元。

如果删除second中的persistence.xml,它就可以了。

使用src/main的同样问题     

0 个答案:

没有答案