![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: нет Всего: 9 |
есть две базы данных db1 и db2, два persistanse-контекста, два EntityManager-a. Есть Энтити.
В первой базе данные изменяются, и тогда нужно их обновить во второй базе. Как бы мне хотелось: из EM1 получил лист классов для каждого из них сделал merge в EM2. JPA сама разобралась что там к чему - сохранила новые энтити и обновила изменившиеся. На практике получается что когда делаю EM2.merge() для уже существующего в db2 объекта, то он вставляется еще раз, а не обновляется старая запись. Праймари кейи в db1 и db2 могут отличаться. equals и hashCode переопределены и праймари кей в них не учитывается. возможно ли это вообще? Может мне нужно как-то отделить primary key от id обьекта, ввести какой-то бизнес-айди обычным полем? Можно ввести поле lastUpdate и по нему определять изменилось ли поле, но это придется писать код для синхронизации самому, а хотелось бы что бы JPA сама этим занималась. Подскажите как быть |
|||
|
||||
Alagert |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Посмотрите в сторону реплекации данных с одной БД на другую. ИМХО, это более верное решение в данной задаче.
--------------------
[color=blue]BORN TO BE ROOT#[/color] |
|||
|
||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: нет Всего: 9 |
Решил проблему
http://forum.vingrad.ru/forum/topic-302979.html Репликация тут не совсем подходит. Мне не нужно синхронизировать две базы полностью. Мне нужно реализовать возможность EnterpriceClient-приложению работать в автономно, в аварийном режиме, в случае если ЕЕ-сервер временно недоступен. Для этого придется делать локальную базу, и туда дублировать все необходимое для автономной работы. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |