Как исключить или включить пакет из единицы сохраняемости JPA - PullRequest
0 голосов
/ 26 ноября 2018

В моем приложении у меня есть два различных набора сущностей, и для каждого из них я хочу использовать отдельную единицу персистентности.

Как я могу сделать так, чтобы каждая единица персистентности обрабатывала только часть сущностей, которые яя пометил @Entity?

Я распределил их в двух разных пакетах, поэтому я планировал сделать что-то подобное в двух orm.xml у меня есть:

<entity-mappings>
    <persistence-unit-metadata>
        <persistence-unit-defaults>
            <schema>first_schema</schema>
        </persistence-unit-defaults>
    </persistence-unit-metadata>

    <package>example.package.first</package>
</entity-mappings>

и

<entity-mappings>
    <persistence-unit-metadata>
        <persistence-unit-defaults>
            <schema>second_schema</schema>
        </persistence-unit-defaults>
    </persistence-unit-metadata>

    <package>example.package.second</package>
</entity-mappings>

Но это не работает

1 Ответ

0 голосов
/ 26 ноября 2018
we can configure one or more persistent units in same persistent.xml

, как показано ниже, и создайте менеджеры сущностей для каждого с @PersistenceContext (unitName = "...") для доступа из dao.

xml configuration:
-------------------

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">

    <persistence-unit name="persistenceUnit1">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>Datasource</jta-data-source>
        <class>Entity1</class>
        <class>Entity2</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect" />
            ....etc
        </properties>
    </persistence-unit>
    <persistence-unit name="persistenceUnit2">

    </persistence-unit> 
    //and so on 

</persistence>

Dao service
-------------
 @PersistenceContext(unitName="persistenceUnit1") 
 EntityManager entityManager; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...