![]() |
|
Модераторы: LSD |
![]()
|
|
| MrNoob |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Здравствуйте.
Изучаю Java, паттерны, sql. И вот читал примерчики по организации DAO (с использованием Hibernate) и придумал себе задачку. Задачка следующего типа: Есть 2 объекта: студенты и группы. И существует 2 операции: добавить студента, и добавить группу(но не просто группу, а сразу с какими-то студентами, т.е. это операция включает предыдущую). Во многих пример DAO слой организуется примерно след. образом
А вот при написании DAO слоя для группы, хотелось бы использовать уже имеющийся для студента.
но есть проблема, т.к. при откате транзакции по созданию группу, некоторые студенты из этой группы были уже успешно добавлены, то откаткой нужно заняться уже своими руками (писать дополнительный код). И вот хочу попросить у вас какую-нибудь "красивую" мысль по поводу данной задачи (конечно решение не именно этой задачи, а общее). Как я понимаю единственное решение, это открытое соединение из GroupDAO передать в StudentDAO, но как это красивее всего организовать... а может есть и другое решение? Заранее благодарю=) |
||||
|
|||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: нет Всего: 43 |
и добавить группу( но не просто группу, а сразу с какими-то студентами, т.е. это операция включает предыдущую ). |
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: нет Всего: 73 |
MrNoob,
one-to-many ? -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 1 Всего: 75 |
Вот такая схема в псевдокоде позволит создавать группу со студентами в одной транзакции, то есть откатить все при необходимости
Это сообщение отредактировал(а) jk1 - 10.8.2010, 09:39 -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
По идее все надо сделать в рамках одной транзакции. А по коду получается, что для вставки группы транзакция и для вставки каждого студента тоже транзакция. Странно.
|
|||
|
||||
| MrNoob |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Нашел статейку с описанием проблемы, вроде относящейся к моей. Разбираюсь...
|
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Design, Quality, Testing | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |