Невозможно получить EntityManagerFactory для unitName - PullRequest
0 голосов
/ 08 мая 2019

Когда я пытаюсь достичь определенной конечной точки, я получаю исключение, говорящее «Невозможно получить EntityManagerFactory для unitName parent_module»

Однако, я получаю эту ошибку, так как я структурировал проект по модулям. Когда у меня все было в родительском модуле, а тег упаковки был war, он работал без ошибок.

Когда я структурировал проект по модулям и сделал родительский тег упаковки как pom, а дочерний модуль как war, у меня началось описанное исключение.

Обратите внимание, что у меня есть файл persistence.xml по правильному пути.

CHILD_MODULE / SRC / главная / ресурсы / META-INF / persistence.xml

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

Файл persistence.xml присутствует в целевой папке во время выполнения.

Я пытался аннотировать EntityManager, например @PersistenceContext (unitName = "parent_module"), но я получаю то же исключение.

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             version="2.0"
             xmlns="http://java.sun.com/xml/ns/persistence"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="parent_module"
                      transaction-type="JTA">
        <jta-data-source>jdbc/postgres.myproject</jta-data-source>
        <mapping-file>META-INF/core-entity-mappings.xml</mapping-file>
    </persistence-unit>
</persistence>
public abstract class AbstractAccessBA {

    @PersistenceContext
    protected EntityManager entityManager;
    /**
     * Flush all changes from the entity manager to the database
     */
    public void flush() {
        entityManager.flush();
    }
}
public class WorkAccessBA extends AbstractAccessBA {

    @Inject
    private WorkMapper workMapper;
    /**
     * Finds all the entries
     * @return a list of workBE
     */
    public List<WorkBE> findAll() {
        CriteriaBuilder cb = entityManager.getCriteriaBuilder();
        CriteriaQuery<WorkBE> cq = cb.createQuery(WorkBE.class);
        Root<WorkBE> rootEntry = cq.from(WorkBE.class);
        CriteriaQuery<WorkBE> all = cq.select(rootEntry);
        TypedQuery<WorkBE> allQuery = entityManager.createQuery(all);
        return allQuery.getResultList();
    }

Должен возвращаться список всех найденных результатов (Опять же, это работает, если я перемещаю все файлы в родительском модуле), но когда я перемещаю файлы (конфигурация в дочернем модуле, который имеет тег упаковки "war" ", он возвращает мне описанную ошибку.

"Невозможно получить EntityManagerFactory для unitName parent_module"

1 Ответ

0 голосов
/ 08 мая 2019

Нашел ответ сам.Проблема была в glassfish / domains / nameOftheDomain / Applications

Был SNAPSHOT parent_module, который я использовал, чтобы развернуть его как war, прежде чем структурировать приложение с модулями parent-child.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...