Я запускаю eclipselink в контейнере OSGi, и мои классы сущностей находятся в их собственном пакете.
Я неоднократно сталкивался с проблемой, заключающейся в том, что Eclipselink не может автоматически определить классы сущностей, в результате чего появляются сообщения "Xyz не является известным типом сущности". Отладка этого болезненна, и мой несколько беспомощный подход заключается в том, чтобы более или менее произвольно настраивать файлы конфигурации, пока он не заработает.
Хотелось бы, чтобы я знал более систематический подход, но я, кажется, недостаточно знаю о возможных причинах этой проблемы. Что они могут быть? Существует ли обзор того, что происходит при автоопределении и что требуется для его работы?
Так что, если вы столкнулись с проблемой самостоятельно и смогли определить одну конкретную причину, опубликуйте ее здесь или проголосуйте, когда вы уже ее увидели. Таким образом, мы могли бы составить список типичных проблем, отсортированных по частоте. Я добавлю те, которые я действительно решил.
Факты, которые я знаю:
- eclipselink использует шаблон расширителя OSGi для прослушивания регистрации пакетов, а затем устанавливает их
- он предположительно использует загрузчик классов для пакета, который определяет единицу сохранения, если вы используете
persistence.xml
для конфигурации, это пакет, в котором должен находиться этот файл.