Как заставить пружину загружать классы JPA из нескольких путей? - PullRequest
2 голосов
/ 03 апреля 2009

Итак, у меня есть приложение Spring, разделенное на несколько модулей, каждый в отдельном проекте. Каждый модуль имеет свои собственные объекты JPA, и я использую Spring ORM для конфигурации:

<beans ...>

<context:component-scan
    base-package="org.myapp.module1.persistence" />

<context:component-scan
    base-package="org.myapp.module2.persistence" />

...

<context:annotation-config />

<tx:annotation-driven />

...

</beans>

И файл persistence.xml выглядит так:

<persistence ...>

<persistence-unit name="myunit" />

</persistence>

Моя проблема в том, что при инициализации контекста Spring он будет искать только классы @Entity по тому же пути в файле persistence.xml и игнорирует пути к классам других проектов.

Я попытался создать несколько файлов persistence.xml, каждый из которых находится в том же пути, что и классы @Entity, но в этом случае, когда Spring находит первый файл persistence.xml, он прекращает загрузку и не находит никаких классов @Entity по другим путям. .

Как я могу заставить Spring взглянуть на все?

Ответы [ 2 ]

4 голосов
/ 01 мая 2009

В случае, если вы хотите создать единое постоянное устройство из нескольких файлов persistence.xml, вы можете использовать MergingPersistenceUnitManager , доступный в Spring Data JPA. Обязательно дайте всем вашим единицам персистентности одинаковое имя. Конечно, вы должны использовать импорт с подстановочными знаками для persistence.xml: classpath*:META-INF/persistence.xml

С уважением, Олли

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