JPA в OSGI env - синхронизируйте менеджеров сущностей - PullRequest
0 голосов
/ 01 марта 2019

У меня есть среда равноденствия osgi, которая использует eclipselink jpa для сохранения сущности.Я неясен по нескольким причинам.Во-первых, когда \ где \ сколько менеджеров сущностей должно быть создано для нашего решения?Во-вторых, как мне поддерживать синхронизацию этих менеджеров сущностей, если их больше 1?

У меня есть родительский объект с двунаправленным отношением 1..N с дочерним объектом.Родители могут существовать без детей, а дети могут существовать без родителей.У меня есть родительский сервис, который позволяет мне редактировать / добавлять / удалять / ... родительские объекты.У меня есть дочерний сервис, который позволяет мне редактировать / создавать / удалять / addToParent / removeFromParent / ... дочерние сущности.

To handle the bi directional associations-
Add child to parent:
Parent p = em.getReference(Parent.class, parentId);
p.addChild(child);
beginTransaction();
persist(child);
commitTransaction();


Remove child from parent:
beginTransaction();
Parent p = child.getParent();
p.removeChild(child);
commitTransaction();

Прямо сейчас у меня есть так, что каждый пакет услуг, ищущий сохранение сущности, являетсясоздание EntityManager при активации и снос его при деактивации.

Итак, когда я создаю родительский объект, родительский сервис обрабатывает эти транзакции.Если я создаю parent 1, родительская служба знает родителей 1, как и db.НО, дочерняя служба не имеет знаний о parent1.Кроме того, если у меня есть parent1 и я добавляю child1, дочерняя служба знает о добавленном child1.НО, если я попрошу родительскую службу получить меня parent1, он не увидит child1.

Похоже, что entityManager не синхронизирован, но я не знаю, как их сохранить.в синхронизации, или дизайн совершенно не так?

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