Вопрос

Я ищу обнаружение сущности в OpenJPA. Что мне не нужно объявлять все объекты в сохранении .xml.

Редактировать: Извините, я забыл сказать, что я разработаю приложение Java SE.

Это было полезно?

Решение

Прочитать Список постоянного класса Раздел в руководстве пользователя.

В отличие от многих продуктов ORM, OpenJPA не нужно знать обо всех ваших постоянных классах при запуске. OpenJPA обнаруживает новые постоянные классы автоматически, так как они загружены в JVM; На самом деле вы можете внедрить новые постоянные классы в работающие приложения в разделе OpenJPA.

  • Примечание. Существует паре ограничения, которые документируются в руководстве пользователя, но я оставил те, кто оставил этот пост.

Другие советы

На спецификацию JPA вы должны явно перечислить все классы в среде Java SE:

6.2.1.6 Показание файла, JAR-файл, класс, исключаемые -

(...)

Список названных классов управляемых настойчивов также может быть указан вместо или в дополнение к файлам JAR и отображения файлов. Любые сопоставления метаданных аннотаций, найденных на этих классах, будут обработаны, или они будут сопоставлены, используя отображение аннотации сопоставления. Элемент класса используется для перечисления управляемого класса постоянства. Список всех названных классов Управляемого настойчивости должен быть указан в средах Java SE для обеспечения портативности. Портативные приложения Java SE не должны полагаться на другие механизмы, описанные здесь, чтобы указать классы управляемых постоянно настойчивости. Поставщики настойчивости также могут потребовать, чтобы набор классов и классов объектов, которые должны быть выполнены, должны быть полностью перечислены в каждом из persistence.xml Файлы в средах Java SE.

Все классы, содержащиеся в корне модуля настойчивости, также будут искать аннотированные управляемые классы настойчивости, и любые аннотации метаданных сопоставления, найденные на них, или они будут сопоставлены с использованием отображения аннотации сопоставления. Если не предназначено, что аннотированные классы настойчивости, содержащиеся в корне единицы постоянства, будут включены в блок настойчивости, exclude-unlisted-classes элемент должен быть использован. То exclude-unlisted-classes Элемент не предназначен для использования в средах Java SE.

Теперь, если вы не возражаете не портативным, вы можете использовать расширение провайдера, но я не мог найти что-то похожее на Hibernate hibernate.archive.autodetection Недвижимость в OpenJPA.

Использование пружины Интеграция JPA (что позволяет более гибким сканированием классов) является другой вариант.

Существует также JPA-плагин, который может сделать это для вас. Последняя версия недоступна в Maven Central, поэтому вам придется клонировать и построить себя.

JPA-плагин

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top