Структура файла JAR проекта при использовании JPA - PullRequest
4 голосов
/ 18 августа 2010

Я не уверен, каков наиболее подходящий способ обработки объектов JPA, которые совместно используются с помощью файла JAR для нескольких проектов.т.е. если у вас есть несколько проектов, у которых все есть объекты Employee и Contact и Address, и вы хотите поместить их в файл JAR, как это работает.то есть

Employee.jar

   jpa/EMF.class
   jpa/Employee.class
   jpa/Contact.class
   jpa/Address.class
   jpa/Organisation.class
   META-INF/persistence.xml

Проект 1

  src/jpa/EMF.java
  src/jpa/BlogEntry.java
  src/jpa/Comment.java
  src/META-INF/persistence.xml
  lib/Employee.jar

Проект 2

  src/jpa/EMF.java
  src/jpa/Stock.java
  src/jpa/Transaction.java
  src/META-INF/persistence.xml
  lib/Employee.jar

Как это работает, нормально ли этоесть два файла persistence.xml, как указано выше?т. е. один для описания классов JPA в файле Employee.jar, а другой для конкретных классов JPA проекта?

Кроме того, файл Employee.jar не должен указывать URL JDBC, так как каждый проект будет использоватьдругая база данных или схема.Если свойства соединения JDBC указаны только в проектах src / META-INF / persistence.xml, будут ли классы Employee.jar подобрать эти настройки?

1 Ответ

2 голосов
/ 18 августа 2010

Как это работает, нормально ли иметь два файла persistence.xml, как указано выше?т. е. один для описания классов JPA в файле Employee.jar, а другой - для конкретных классов JPA проекта?

Конечно, если можно иметь несколько файлов persistence.xml, если вы работаетес разными .jar файлами, определяющими каждый отдельный блок персистентности.Ваш поставщик сохраняемости должен иметь возможность выяснить, к какому классу относится данный блок сохраняемости, и загрузить соответствующие файлы конфигурации для каждого.

Конечно, в зависимости от того, какой поставщик сохраняемости вы используете и в какой среде вы 'Если вы работаете, вы можете столкнуться с дальнейшими проблемами, но это другая проблема.

Но общая идея остается прежней, каждый файл .jar, содержащий постоянные сущности, должен иметь этот набор сущностей, связанный как единица постоянства, используяФайл persistence.xml в каталоге classes/META-INF.

С уважением,

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