Создание <class>определений программно в EclipseLink - PullRequest
2 голосов
/ 19 марта 2012

Я пытаюсь использовать EclipseLink в среде OSGi.

Что я хочу сделать, так это создать пакет поставщика, который предоставляет EntityManager другим пакетам.

Проблема в том, что классы сущностей не могут быть определены и записаны в файл persistence.xml во время компиляции.Поэтому я хочу иметь возможность определять классы сущностей программно.Я могу сканировать все классы сущностей, но, насколько я мог видеть, нет способа определить его в EclipseLink, хотя это возможно в Hibernate.(Hibernate имеет некоторые другие проблемы в среде OSGi, поэтому я тоже не могу его использовать)

Как я могу программно определять классы сущностей?

Примечание: использование Spring не подходит для меня;и определение ClassDescriptors с нуля неприемлемо.Должен сказать, что действительно глупо, что такая важная функция не поддерживается ни в JPA, ни в EclipseLink напрямую.

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Вы пробовали это?

<exclude-unlisted-classes>false<exclude-unlisted-classes>
1 голос
/ 19 марта 2012

вы пробовали <jar-file> тег в файле persistence.xml?

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

подробнее в спецификации JPA2 8.2.1.6.3

...