同一JPA persistence.xml中的不同对象模型

时间:2016-03-18 09:36:34

标签: java hibernate jpa

我使用JPA处理其中包含不同对象模型的几个数据库。

的persistence.xml

<persistence-unit name="unit_1" transaction-type="RESOURCE_LOCAL">
    <description>pu-pu-pi-du</description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>my.package.items1.Class1_1</class>
    <class>my.package.items1.Class1_2</class>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>
        <!-- uncomment to show sql queries in System.out -->
        <property name="hibernate.show_sql" value="false"/>
        <property name="hibernate.format_sql" value="true"/>
        <!-- Envers -->
    </properties>
</persistence-unit>
<persistence-unit name="unit_2" transaction-type="RESOURCE_LOCAL">
    <description>Persistance config</description>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>my.package.items2.Class2_1</class>
    <class>my.package.items2.Class2_2</class>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>
        <!-- uncomment to show sql queries in System.out -->
        <property name="hibernate.show_sql" value="false"/>
        <property name="hibernate.format_sql" value="true"/>

        <!-- Envers -->
    </properties>
</persistence-unit>

当我以这种方式创建工厂时:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("unit_1", properties);

它运行良好,但使用unit_2中的所有类更新unit_1的数据存储。 factory.metamodel.entities将包含所有4个类:

  • my.package.items1.Class1_1
  • my.package.items1.Class1_2
  • my.package.items2.Class2_1
  • my.package.items2.Class2_2

来自unit_1的另外两个表将从unit_1添加到数据库中。

如何解释JPA,unit_1的数据库与unit_2没什么共同之处,我不需要它的映射?

1 个答案:

答案 0 :(得分:0)

在&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39; &#39;&#39; persistence-unit&#39;&#39;

中的标签
<exclude-unlisted-classes>true</exclude-unlisted-classes>