Hibernate не находит сущностей в тесте - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть проект JDK11, созданный Maven, полностью использующий JPMS, представленный в Java 9.

Я хотел бы написать интеграционные тесты, в которых я использую встроенную базу данных H2. Мой провайдер JPA - Hibernate 5.4.9.

Поскольку база данных H2 используется только во время тестирования, я сначала попытался поместить persistence.xml в папку ресурсов тестирования.

Проблема в том, что что Hibernate ищет сущности только в папке test-classes и полностью игнорирует основные классы, в которых находятся мои сущности. Так что мой тест не пройден, потому что он не находит сущности, которые я пытаюсь использовать.

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

Почему эта проблема внезапно возникает? Я никогда не сталкивался с этой проблемой раньше (в основном с Java 8 и Hibernate 5.3).

Могу ли я обнаружить мои объекты, не копируя persistence.xml в мои основные ресурсы? Я также не хотел бы перечислять свои сущности вручную.

1 Ответ

0 голосов
/ 10 апреля 2020

Я разобрался. Я забыл добавить следующую строку к объявлению persistence-unit в моем тесте persistence.xml:

<jar-file>${project.build.outputDirectory}</jar-file>

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