JPA: Как избежать жесткого кодирования местоположения jpa-jar? - PullRequest
2 голосов
/ 14 февраля 2011

Вот факты:

  1. У меня есть 2 баночки, которые содержат сущности JPA в моем веб-приложении,
  2. и сущности из одной баночки (баночка A) имеют ссылки на сущности в другой банке(jarB)
  3. Я поместил <jar-file>/WEB-INF/lib/MyJarB.jar</jar-file> в файл persistence.xml jar A

Но я не хочу жестко кодировать / WEB-INF / lib / MyJarB.jar , потому что я мог бы тестировать сущности в тестовой среде и хотел бы иметь другой способ задания зависимостей jar, кроме жесткого кодирования пути.

Я пробовал <jar-file>MyJarB.jar</jar-file> и <jar-file>./MyJarB.jar</jar-file>, но оба не смогли.

Пожалуйста, поделитесь своими мыслями.

Ответы [ 2 ]

3 голосов
/ 14 февраля 2011

Создайте еще один persistence.xml только для чистого тестирования и поместите его в сам проект B или другой подпроект, который содержит классы тестирования.

1 голос
/ 14 февраля 2011

Я НЕ рекомендую ставить persistence.xml вместе с вашими JAR-файлами, потому что определение постоянства является проблемой приложения. Поэтому было бы лучше иметь persistence.xml в вашем web модуле, объявляющем оба JAR:

<jar-file>/WEB-INF/lib/MyJarA.jar</jar-file>
<jar-file>/WEB-INF/lib/MyJarB.jar</jar-file>

Если в вашем веб-модуле есть тесты, и вы хотите использовать другое определение персистентности, просто создайте альтернативный файл persistence.xml, скажем, в src/test/resources, и просто используйте его для создания экземпляра EntityManagerFactory.

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