| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > JPA дублирование при сохранении |
| Автор: Temdegon 11.6.2010, 01:50 | ||||||||||
| Есть древовидная структура классов из групп и элементов. Абстрактный класс элемента:
Конкретный элемент (конечный)
Класс группы:
Группа содержит коллекцию элементов. Каждый элемент держит ссылку на свою группу. Через EntityManager я загружаю корневой элемент
а он каскадно инициализирует всю структуру. Все это отлично работает на GlassFish V2. Теперь собственно о проблеме: Возникла необходимость разрешить автономную работу клиента. Нужно синхронизировать эту структуру данных между серверной базой и локально БД клиентского приложения. Создаю локальный EntityManager:
И вся структура сохраняется в локальной базе. Но в этой локальной базе откуда-то появляются дубликаты. База сервера: http://ipicture.ru/Gallery/Viewfull/414984.html Локальная база: http://ipicture.ru/Gallery/Viewfull/414994.html Как видно, все сохранилось, но некоторые элементы продублировались. Из-за чего это может быть? Как с этим бороться? Вопрос №2: Если я еще раз запущу клиента, то он вставит все записи еще раз, а не обновит существующие. Можно ли как-то "научить" EntityManager вставлять только новые записи и апдейтить измененные, а не вставлять дубликаты? |
| Автор: Temdegon 14.6.2010, 02:55 |
| Изменил @GeneratedValue(strategy = GenerationType.IDENTITY) на @GeneratedValue(strategy = GenerationType.AUTO) и все стало отлично. |