Несколько тегов единицы постоянства в одном файле persistence.xml - PullRequest
31 голосов
/ 06 декабря 2011

Сейчас я работаю с проектом JPA 2.0 (в Eclipse Indigo). В моем файле persistence.xml мне нужно указать два тега , потому что у меня есть две разные базы данных для работы. Делая это, я получаю следующее предупреждение:

Определено несколько единиц персистентности - будет распознан только первый блок персистентности

Более того, если я создаю свои сущности и помещаю их во второй <блок персистентности>, я получаю сообщение об ошибке, в котором говорится, что моя сущность не объявлена ​​в блоке персистентности:

Класс "my.package.MyClass" сопоставлен, но не включен ни в одну единицу сохранения

Итак, вопрос таков: можно ли объявить (и использовать их как положено) множество тегов в файле persistence.xml? Если да, что мне нужно сделать, чтобы получить точное поведение?

Спасибо!

Ответы [ 2 ]

41 голосов
/ 22 декабря 2011

JPA не ограничивает количество единиц персистентности, определенных в файле persistence.xml.Это предупреждение просто говорит об ограничении инструмента в Eclipse IDE.Это сказано, например, здесь http://www.eclipse.org/webtools/dali/gettingstarted.php:

В настоящее время Dali поддерживает только один модуль постоянства и один файл XML постоянства для каждого проекта.Другие конфигурации могут существовать в проекте JPA, но обработка валидации и значений по умолчанию может быть неправильной, если используются несколько единиц персистентности.

Я полагаю, что в Eclipse IDE не существует известного способа получить эту работу.

28 голосов
/ 17 декабря 2013

Хотя это действительно JPA, вы также можете отключить возникающие (раздражающие) уведомления об ошибках для каждого проекта, перейдя в

Project Properties => JPA => Errors/Warnings

Активируйте Enable project specific settings и в Type измените уровень уведомления для Class is mapped but is not in a persistence unit с Error на все, что вам удобно.

Обновление для Eclipse Luna:

Местоположение и название настройки изменились в Луне. Новое местоположение:

Project Properties => JPA => Errors/Warnings

Чек Enable project specific settings

Развернуть Project Группа

Изменить Multiple persistence units defined: на Ignore.

enter image description here

...