![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
dm3q3k |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.6.2010 Репутация: нет Всего: нет |
Здравствуйте! Прошу помочь разобраться
Имеется следующий код
Данные (decision) успешно сохраняются в базу. Но если где-то далее по коду взять объект Organization и посмотреть связанную с ним коллекцию Decision, то получаю старый список, без добавленных новых объектов. Получение объекта Organization и просмотр списка Decision
Класс Organization
Класс Decision
|
||||||||
|
|||||||||
ki6opr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
может я конечно туплю, но разве не нужно сделать еще и вот так ?
organization.getDecisionList.add(decision) |
|||
|
||||
dm3q3k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.6.2010 Репутация: нет Всего: нет |
может я конечно тоже туплю, но какой тогда смысл использовать JPA?
Просто organization.getDecisionList().add(decision) ничего не даст, нужно еще em.merge(organization) делать. А если у меня какой-то очень сложный объект, с большим количеством связей, мне для каждой связи делать getList().add(...) а потом еще и merge. |
|||
|
||||
ki6opr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
только сейчас заметил а где Каскадность у Decision.organization ? по умолчанию вообще то никаких действий производится не будет
Это сообщение отредактировал(а) ki6opr - 15.6.2010, 07:24 |
|||
|
||||
dm3q3k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.6.2010 Репутация: нет Всего: нет |
а какая каскадность должна быть. Ставил CascadeType.ALL, так он мне новую организацию создает, а не обновляет коллекцию у старой |
|||
|
||||
ki6opr |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
а PersistentContext в JPAFacade типа Extended ? |
||||
|
|||||
dm3q3k |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.6.2010 Репутация: нет Всего: нет |
JpaFacade, type не указан, видимо по умолчанию
persistence.xml
|
||||
|
|||||
dm3q3k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.6.2010 Репутация: нет Всего: нет |
а что даст тип Extended? Если не затруднит, поясните пожалуйста Это сообщение отредактировал(а) dm3q3k - 16.6.2010, 12:47 |
|||
|
||||
ki6opr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
да тут нужно тип Extended использовать, различие в том что если используешь PersistentContext.Extended сущности всегда находятся в контексте пока ты сам вручную не сделаешь detach (тоесть JPA знает новая ли это сущность, либо она измененая).
в случае обычного контекста у тебя сущность приходит в состоянии detached и сначала нужно сделать merge который изменит состояние либо на new для новой либо на merged для существующей энтити. собственно в джавадоках это все описано ![]() у тебя получается что сушности приходят detached потом ты делаешь персист и машина просто создает новые вместо того что бы обновить Organization. измени тип контекста на Extended и добавь в анотацию ManyToOne каскадность. Это сообщение отредактировал(а) ki6opr - 17.6.2010, 02:29 |
|||
|
||||
dm3q3k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 12.6.2010 Репутация: нет Всего: нет |
Спасибо за разъяснение. А какие могут быть проблемы при использовании Extended? Ну то есть плюсы для себя я увидел, но , возможно есть какие-то подводные камни?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |