У меня есть модуль A и модуль B, у которых есть аннотированные классы JPA. Модуль B имеет unit test, который тянет пару из этих объектов от A. Оба модуля скомпилированы, зависимости от времени выполнения установлены в порядке, но я получаю следующую ошибку, когда пытаюсь запустить unit test:
java.lang.IllegalArgumentException: Unknown entity: MyClassHere
Caused by: org.hibernate.MappingException: Unknown entity: MyClassHere
Это происходит в вызове EntityManager.merge.
Поскольку модуль B имеет все конфигурационные файлы hibernate и т.д., я предполагаю, что это просто не означает, что мой класс из A является сущностью.
Я попытался добавить следующее в persistence.xml
<exclude-unlisted-classes>false</exclude-unlisted-classes>
В hibernate.cfg.xml я добавил:
<property name="packagesToScan">myNamespace.*</property>
Тогда:
<property name="packagesToScan">
<array>
<value>myNamespace.*</value>
</array>
</property>
Это дало мне ошибку, что содержимое "property" должно соответствовать нулевому значению. Затем я попробовал:
<mapping class="myNamespace.*" />
Что мне не хватает?
Изменить:. Одна вещь, о которой я забыл упомянуть, может иметь значение, так это то, что два модуля настроены как отдельные проекты (я использую eclipse), поэтому структура каталогов отличается. Зависимости времени выполнения настроены правильно, но поскольку файлы .class попадают в разные каталоги, я думаю, что спящий режим может не сканировать их.