我在[{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
的同样问题