如何在persistence .xml中添加多个持久化单元



这是正确的用法吗?

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="UserBean">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.tugay.registiration.UserBean</class>
        <properties>
            <property name="javax.persistence.jdbc.driver"
                      value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url"
                      value="jdbc:mysql://localhost:3306/sampleapplication"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="****"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="CustomerBean">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.tugay.registiration.CustomerBean</class>
        <properties>
            <property name="javax.persistence.jdbc.driver"
                      value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url"
                      value="jdbc:mysql://localhost:3306/sampleapplication"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="****"/>
        </properties>
    </persistence-unit>
</persistence>

无论如何,既然你是写到同一个数据库,为什么麻烦,不简单地添加所有类在一个?

但是如果这是你需要的。如果您希望在同一个文件中有两个单元,请在class标记后添加<exclude-unlisted-classes>true</exclude-unlisted-classes>,以排除那些不属于此持久单元的单元。否则持久化A可以插入持久化b的实例

在我看来,你最好有两个单独的persistence.xml。在不同的文件夹或不同的名称

请记住,您将需要两个单独的EntityManagerscontexts

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="UserBean">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.tugay.registiration.UserBean</class>
        <class>com.tugay.registiration.CustomerBean</class>
        <properties>
            <property name="javax.persistence.jdbc.driver"
                  value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url"
                  value="jdbc:mysql://localhost:3306/sampleapplication"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="****"/>
        </properties>
    </persistence-unit>
 </persistence>

最新更新