|
|
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Усть 3 класса: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. Класс TransferTableEntity связан отношением многие к одному с ProductEntity и TransferEntity. Например у меня 3 объекта TransferTableEntity связаны с одним объектом TransferEntity . Нужно удалить один из объектов TransferTableEntity, чтобы их осталось 2. Как это сделать? Выполняю Код: java 1. 2. 3. 4. 5. Все ок. По каскаду удаляет все связанные с ним TransferTableEntity. А вот как удалить один из TransferTableEntity связанных с TransferEntity? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:46:51 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
alex2808, просто в тупую Код: java 1. 2. 3. 4. 5. не прокатывает, видно связи мешают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:48:57 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Есть сто-пицот ошибок по которым может не проихсодить удаление. Вы же тупо пишите "не прокатывает". Ну "не прокатывает", так можно "перенести" или "перекинуть", в конце концов. Происходит ошибка? Или просто не удаляется из-за кеширования? А если вот так: te.getTransferTables().remove(i) А потом закомитить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:01:10 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Ошибок не выдает, просто не удалят. Сейчас попробую Ваше предложение. Кстати, а не подскажите как гуру, принцип работы orphanRemoval? Код: java 1. 2. 3. 4. 5. 6. 7. Что в данном примере дает его установка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:13:21 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
alex2808Ошибок не выдает, просто не удалят. Так и нужно было говорить. Когда "мешают связи" то будет явный SQL Exception. В вашем случае просто удаление сущности не обозначает удаление коллеции: 21.1. A note about collections http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/example-parentchild.html alex2808Кстати, а не подскажите как гуру, принцип работы orphanRemoval? Что в данном примере дает его установка? При удалении Employee будут удаляться всего его адреса. Это логично, если Адресс это личная инфа принадлежащая исключительно данному Employee. А вот если у нас адрес это независимая сущность, например словарь, на которые ссылаются разные другие таблицы, то orphanRemoval не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:20:08 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Вот ещё: http://planet.jboss.org/post/collection_caching_in_the_hibernate_second_level_cache Collections are only invalidated from the cache as a result of an operation on the Java object that represents the collection! Т.е. если вы иногда работаете независимо с TransferTableEntity, а иногда с коллекцией TransferEntity.transferTables , то нужно аккуратнее следить за кешированием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:22:25 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Blazkowicz alex2808Кстати, а не подскажите как гуру, принцип работы orphanRemoval? Что в данном примере дает его установка? При удалении Employee будут удаляться всего его адреса. Это логично, если Адресс это личная инфа принадлежащая исключительно данному Employee. А вот если у нас адрес это независимая сущность, например словарь, на которые ссылаются разные другие таблицы, то orphanRemoval не нужен. Чем же он тогда отличается от cascade = CascadeType.ALL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:33:39 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Blazkowiczalex2808Ошибок не выдает, просто не удалят. Так и нужно было говорить. Когда "мешают связи" то будет явный SQL Exception. В вашем случае просто удаление сущности не обозначает удаление коллеции: 21.1. A note about collections http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/example-parentchild.html А за эту инфу огромное спасибо. Нормально отработала вот такая конструкция Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:47:25 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Чем же он тогда отличается от cascade = CascadeType.ALL Каскад потянет за собой элементы коллекции при удалении родительского элемента, а орфан удалит элемент коллекции из базы при удалении его из коллекции. Так же, как работает элемент эмбеддед коллекции. Только в случае эмбеддед коллекции хибер гарантирует, что ссылок на элемент коллекции не может быть в базе, а при орфане это должны обеспечить вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:49:50 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
Кстати, еще, если не затруднит, объясните для новичка плизз различия между Код: java 1. и Код: java 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:51:42 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
javapeckerЧем же он тогда отличается от cascade = CascadeType.ALL Каскад потянет за собой элементы коллекции при удалении родительского элемента, а орфан удалит элемент коллекции из базы при удалении его из коллекции. Так же, как работает элемент эмбеддед коллекции. Только в случае эмбеддед коллекции хибер гарантирует, что ссылок на элемент коллекции не может быть в базе, а при орфане это должны обеспечить вы. Т.е.,насколько я понял, если я использую у себя этот параметр анотации в коде Код: java 1. 2. То строка из подчиненной таблицы удалится, если я напишу просто Код: java 1. 2. 3. а не как ранее Код: java 1. 2. 3. 4. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 18:00:05 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
alex2808, Чё там думать. У темя 3 таблицы и отношения много ко много по бизнесу. Так? Из этого и исходи. Тогда в подчинённойВсегда надо удалять по каскаду от обоих родителей. Плюс записи в самой подчиненной тоже можно. У тебя СТАНДАРТНЫЙ маппинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 18:32:02 |
|
||
|
JPA2 удаление и обновление данных при связи 1-многим
|
|||
|---|---|---|---|
|
#18+
alex2808, должно быть так, я не проверял. А еще какая-нить сущность кроме владельца коллекции может ссылаться на ее элементы? Если нет, то можно без орфана, просто как коллекцию элементов замапить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 18:34:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38041995&tid=2130547]: |
0ms |
get settings: |
10ms |
get forum list: |
28ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
64ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
97ms |
get tp. blocked users: |
3ms |
| others: | 317ms |
| total: | 564ms |

| 0 / 0 |
