将实体绑定到具有 2 个数据源的特定持久性单元

Binding entity to a specific persistence-unit with 2 datasource

我在 persistence.xml 中有两个持久性单元,在 standalone.xml 中有两个数据源,但我无法将 table A 绑定到持久性 1 并将 table B 绑定到持久性2

像这样

<persistence-unit name="itsetup-persistence-unit-dev1" transaction-type="JTA">
    <description>Forge Persistence Unit</description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/itsetup-dev1</jta-data-source>
    ...

<persistence-unit name="itsetup-persistence-unit-dev3" transaction-type="JTA">
    <description>Forge Persistence Unit</description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/itsetup-dev3</jta-data-source>
    <class>my.package.User</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    ...

<datasource jndi-name="java:/itsetup-dev3" pool-name="itsetup-dev3" enabled="true" use-java-context="true">
    <connection-url>jdbc:informix-sqli://server:9991/database</connection-url>
    <driver-class>com.informix.jdbc.IfxDriver</driver-class>
    <driver>ifxjdbc.jar</driver>
    <security>
    ...

这是我的用户模型

@Entity
@PersistenceContext(unitName = "itsetup-persistence-unit-dev3")
@Table(name = "user_file")
public class User {

我的用户服务

@PersistenceContext(unitName = "itsetup-persistence-unit-dev3")
private EntityManager em;

课程 table 是

@Entity
@PersistenceContext(unitName = "itsetup-persistence-unit-dev1")
@Table(name = "ppp_course")
public class Course {

和我的课程服务

@PersistenceContext(unitName = "itsetup-persistence-unit-dev1")
private EntityManager em;

但是当我 运行 服务器时,它总是生成其他 table 到 dev3 数据库,就像它没有查看 dev1 数据库一样 Table not found: ppp_course

我该如何解决这个问题?

<persistence-unit name="itsetup-persistence-unit-dev3" transaction-type="JTA"> 中删除 <property name="hibernate.archive.autodetection" value="class" />。但是必须失去自动检测功能。