| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate - объект который повторяется..... |
| Автор: firedrago 4.9.2007, 23:13 | ||||||||
| Всем привет, вот сново столкнулся с проблемой и очень прошу о помощи....... есть ряд самостоятельных объектов B и C, и объект А который объединяет объекты B и С. B и С могут быть null. Объект X - это некий item который может быть только в оном экземпляре в Sete. Для дальнешего понимания - Hibernate Session -только одна через pool.
Теперь следующий сценарий - шаг 1) есть объект B B->items->X->id = 1 B->items->X->value = true B->items->X->id = 2 B->items->X->value = false B->items->X->id = 3 B->items->X->value = true он создан - записан в базу - все ок шаг 2) создаем объект А A->id =1 добовляем в него объект В записываем -> все ок шаг 3) вытаскиваем объект А session.load(A.class, "1") - все ок а теперь самое интересное - надо создать объект С добавить в него все объекты Х из объекта В где value = true ( id = "1" и "3") вариант:
кречит что объект уже ассоциирован с этой сессией и естественно не работает вариант: C c= new C();
как сделать с двумя сессиями я знаю....но в моем случае вторую сессию очень сложно сделать... где-то вычитал что как-то через session.merge() сделать можно - но как что-то я понять не могу как merge() правильно пользоваться..... ну вобщем вот и вопрос - как это сделать с одной сессией....... зарание благодарен! |
| Автор: firedrago 6.9.2007, 17:18 |
| неужели никто не сталкивался ?! все идеи ОЧЕНЬ приветствуются! |
| Автор: Aoli 6.9.2007, 23:43 | ||
А что говорит если писать так:
|
| Автор: firedrago 7.9.2007, 15:52 |
| спасибо, я разобрался - причины у меня как выяснилось - 2 1. надо больше спать... 2. быть более внимательным... а если серъезно то 1. в вышеприведенном примере в строке <many-to-one name="items" class="X" column="X_ID"/> надо было бы указать правильный cascade 2. в моем приложении не был инициализирован Set, тоесть как в примере (Set<X> items = new HashSet<X>();) new HashSet не был вписан..... что мне не очень понравилось hibernate не выдал никаких exception..... а так всем спасибо за внимание! |