|
|
|
Сохранение списка сущностей
|
|||
|---|---|---|---|
|
#18+
Есть две сущности Person { List<Child> children } Child { } На странице (это веб) можно сразу добавить в список несколько Child То есть Service { public void addChildren(List<Children> additionalChildren) { person.getChildren().addAll(additionalChildren) } } Как правильно должен выполняться запрос? Достаточно добавить список additionalChildren и затем сохранить Person? Или надо делать итерацию по списку additionalChildren и сохранять каждый? У меня например каждый Child не содержит ссылку на Person, они соединяются через промежуточную таблицу. И если эти additionalChildren были в предыдущей транзакции получены из БД, а в этой я пытаюсь их добавить в Person и сохранить, то выпадает exception detached entity passed to persist ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2013, 01:39:27 |
|
||
|
Сохранение списка сущностей
|
|||
|---|---|---|---|
|
#18+
osonНа странице (это веб) можно сразу добавить в список несколько Child - "сразу" это не термин проектировщика. Сразу в одной физической транзакции или логической? Обычно "сразу" - это когда импорт чилдрен (5 детей) из файла в систему. Обычно "по одному" - это когда нажимаешь кнопку "Добавить" в ГУИ. ЗЫ. Т.к. веб "без состояния" , то по одному "проще и лучше". ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2013, 12:32:55 |
|
||
|
Сохранение списка сущностей
|
|||
|---|---|---|---|
|
#18+
osonУ меня например каждый Child не содержит ссылку на Person, они соединяются через промежуточную таблицу. уже говорил - приведи полный маппинг (можешь игнорировать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2013, 12:34:16 |
|
||
|
Сохранение списка сущностей
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. На странице есть возможность выбрать список имеющихся в базе адресов, затем создать Person, присвоить ему список адресов и затем сохранить этиот новый Person со списком адрресов, которые не новые, а считанные из базы в предыдущей транзакции. То есть List<Address> addresses уже есть в бд, но они считываются в отдельной транзакции. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Затем создается Person, в другом классе и в другой транзакции Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. И вот когда я хочу сохранить person, выпадает exception - detached entity passed to persist occurs Для того, чтобы этого избежать, приходится после создаия Person делать Код: java 1. то есть сохранить его в одной транзакции, затем добавить adreses в persion Код: java 1. затем снова вызвать Код: java 1. Почему так получается? в чем проблема - почему не сохраняется person с добавленными адресами за раз? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2013, 19:48:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38108154&tid=2130155]: |
0ms |
get settings: |
17ms |
get forum list: |
32ms |
check forum access: |
9ms |
check topic access: |
9ms |
track hit: |
68ms |
get topic data: |
25ms |
get forum data: |
5ms |
get page messages: |
96ms |
get tp. blocked users: |
3ms |
| others: | 327ms |
| total: | 591ms |

| 0 / 0 |
