Могу ли я писать в разные базы данных Jetty, используя JPA, использующий один и тот же «класс сущностей» - PullRequest
1 голос
/ 11 июня 2010

Я использую Java персистентность, а там класс EntityManager и ему назначен для хранения объект класса, который должен быть записан в базу данных.Моя проблема в том, что я хочу писать в разные базы данных, используя один и тот же класс хранения.Мое решение для этого было написать StorageManagerfactory, который имеет карту, содержащую все EntityManager.Решение выглядело хорошо, пока я не посмотрел на базы данных и не понял, что вся информация (независимо от карты, которая получает правильное значение) была записана в одну и ту же базу данных (одну из инициализированных на карте).

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

Спасибо

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Да, определите несколько единиц персистентности в persistence.xml.Затем при введении @PersistenceContext укажите атрибут unitName.

0 голосов
/ 11 июня 2010

Мое решение для этого было написать StorageManagerfactory, который имеет карту, содержащую все EntityManager

Я не думаю, что Map из EntityManager хорошая идея.

Однако должно быть возможно использовать Persistence.createEntityManagerFactory(String, Map) для создания N EntityManagerFactory, указывающего на N баз данных (упомянутый фабричный метод позволяет передавать дополнительные свойства, которые переопределяют значения, которые могли быть настроены в другом месте, например URL-адрес соединения), и этим EntityManagerFactory в Map.

Затем просто получите «правильные» EntityManagerFactory от Map (используйте любую нужную клавишу) и получите EntityManager.

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