JPA путь к классу persistence.xml расположен?

Вот то, что я пытаюсь сделать. Я использую персистентность JPA в веб-приложении, но у меня есть ряд модульных тестов, которые я хочу выполнить за пределами контейнера.

У меня есть свое основное устройство persistence.xml в META_INF папка моего главного приложения и это работает отлично в контейнере (Glassfish).

Я поместил секунду persistence.xml в META-INF папка моего test-classes каталог. Это содержит отдельную единицу персистентности, которую я хочу использовать для теста только. В затмении я поместил эту папку выше в путь к классу, чем папка по умолчанию, и это, кажется, работает.

Теперь, когда я выполняю сборку знатока непосредственно из командной строки, и она пытается выполнить модульные тесты, persistence.xml переопределение проигнорировано. Я вижу переопределение в META-INF папка знатока сгенерирована test-classes каталог и я ожидали, что тесты знатока будут использовать этот файл, но это не. Работают мои тестовые переопределения конфигурации Spring, достигнутые подобным способом.

Я смущен в к ли persistence.xml расположен через путь к классу. Если бы это было, то мое переопределение должно работать как пружинное переопределение, так как знаток, безошибочный плагин объясняет" [Тестовый каталог класса], будет включен вначале тестовый путь к классу".

Разве я неправильно ожидал как persistence.xml файл расположен?

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

8
задан Vinnie 14 April 2010 в 14:59
поделиться

2 ответа

persistence.xml загружается из classpath; в прошлом я делал именно то, что вы описали.

Скорее всего, это проблема с maven. Вы можете отладить classpath maven, запустив его с опцией -X.

3
ответ дан 5 December 2019 в 21:17
поделиться

Неясно, где вы разместили «второй» persistence.xml (тестовая версия), но вам следует поместить его в SRC / тест / ресурсы / META-INF . Ресурсы тестирования автоматически добавляются в путь к классам, установленный Maven для ваших модульных тестов, и имеют приоритет над ресурсами, размещенными в src / main / resources .

4
ответ дан 5 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: