|
|
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Вот такой код ошибки Код: java 1. Появляется она переодически когда сохраняю данные. Но иногда мой код отрабатывает правильно иногда нет. В чем причина? Гуглил довольно много, поставил последнюю версию Spring Jpa Data (Spring Boot) вместе с Hibernate 5 помогло на пару запусков потом опять. На стековерфлоу и других ресурсах очень противоречивая инфа. Может кто лично сталкивался? Не исключаю ошибку маппинга Вот сам код Сильно не переиминовываю ибо переименовывать много. Код: 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. Иерархия маппинга сверху вниз Benutzer->akkFile->akkEntrry Benutzer->Vorgang->akkFile->akkEntrry Увы иерархия не прямая - ну не я ее придумал. БД - оракл 12, ссервер приложение - томкат- гоняю его из под эклипс марс Версия спринг Код: java 1. 2. 3. Билдер - maven Все пакеты необзодимые вроде валидатора и пр примочек к спрингу вклбчая и 5 хибернейт с сервака конторы из хранилища мавен. Все актуальное. Что не верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2016, 00:05 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
И при чем тут data.model.User? Или это недопереименованный Benutzer? Из приведенного кода непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2016, 09:19 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
ivanra, Да именно бенутцер. Сначала взялся переводить на более всм понятный нгл но потом плюнул и так все ясно. Что делаю не так откуда глюк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 01:22 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александр, А этот метод у вас завернут в транзакцию? Spring создает только одну hibernate сессию? Если, нет, то у вас выходит по одной сессии на каждый запрос к репозиториям и один и тот же User загружатся разными сессиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 07:58 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторА этот метод у вас завернут в транзакцию? напрямую с ними не работаю. автор Spring создает только одну hibernate сессию? Если, нет, то у вас выходит по одной сессии на каждый запрос к репозиториям и один и тот же User загружатся разными сессиями. Можно пример как это с репозиторием работает а не с фабрикой? В конфе да только 1 сессия по логике все через нее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 00:30 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
по примеру кода ничего не понятно ... дайте болше кода : бины, репозитории итд ... может ленивая иницализация прокси полей , когда сессия уже закрыта ?! а может еще что то... Пишите jpql сразу вытаскивая все что нужно через ? Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 09:55 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Да тут напутано - со стаканом не разберешься. С одной стороны Код: java 1. 2. 3. То есть akkFile ФК для vorgang. С другой утверждается, что такая иерархия маппинга сверху вниз Benutzer->akkFile->akkEntrry Benutzer->Vorgang->akkFile->akkEntrry То есть Vorgang ФК для akkFile. где истина? Ну, допустим Vorgang->akkFile это связь 1 к 1, тогда код vorgang.setAkkFile(new AKKFile()) возможен. Тогда всё равно вопрос, vorgang.setBenutzer? Сплошные загадки. Разбираться со структурой данных и маппингом, а после - с данными в сессии: Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 10:46 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
ivanraРазбираться со структурой данных и маппингом +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2016, 10:51 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
ivanra, авторBenutzer->akkFile->akkEntrry Benutzer->Vorgang->akkFile->akkEntrry То есть Vorgang ФК для akkFile. Benutzer->akkFile 1 ко многим akkFile->akkEntrry 1 ко многим Benutzer->Vorgang 1 ко многим Vorgang->akkFile 1 к 1 авторрепозитории Там смотреть не особо есть на что. Просто интерфейс. Без кода ну кроме пары селектов завернуты в findBy Код: 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. Код: 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. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. Код: 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. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. Код: 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. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. Код: 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. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. Код: plaintext 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. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2016, 10:44 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
У Вас или ничего или все :) можно было бы геттеры сетеры и не вставлять - только важные описания ... а где код как вы со всем этим работаете ? еще раз ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 08:50 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александр, необходимо исключить встречные каскады. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 10:40 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Atum1, Так выше в первом посту. Куда уж подробнее. Просто с рабоыт на горячую писать не могу рунет заюанен в принципе даже на чтение - политика гос. конторые немейкой туды ее сюды. А дома уже не очень хорошо с мотивацией. Проектная работа и сильно ненормированные раб. день - ну не я этот дедлайн устроил но разгребать в том числе мне. авторнеобходимо исключить встречные каскады. Я конечно почитаю но буду благодарен если носом ткнете. Просто там объем не мелкий и без этого а тут еще и этот баг вылез как и пара других. Например после обновления спринга до последней версии от чего то юнит тест перестал работать - там опять же хибернейте и ваадин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 23:14 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Ну, это скорее общая практика, так как CascadeType действует транзитивно, и может привести к большому количеству операций select/update. И кроме того, CascadeType.ALL включает в себя CascadeType.MERGE, и петли в приведенном примере гарантированы. А в конкретном примере вот что происходит: абсолютно все связи помечены с родительской стороны Код: java 1. , с подчиненной стороны Код: java 1. Атрибут cascade сделан для ленивых программистов и означает, что соответствующее действие будет транзитивно выполняться в связанной сущности. Не приведен код метода vorgangRepository.save(vorgang), но, скорее всего там что-то типа Код: java 1. И вот у этого vorgang с одной стороны имеется присоединенный к сессии vorgang.akkfile.benutzer, с другой - отсоединенный vorgang.benutzer (тоже не видим кода, но скорее всего это так, поскольку связь жадная). Вот этот vorgang.benutzer и есть Detached instance из приведенного текста ошибки. Если vorgang.benutzer и vorgang.akkfile.benutzer с разными id, ошибки не будет. Я бы везде на подчиненной стороне убрал CascadeType.MERGE. Какой смысл при изменении vorgang автоматически мержить vorgang.benutzer, в нем что-то тоже меняется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 12:15 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александрBenutzer->akkFile 1 ко многим akkFile->akkEntrry 1 ко многим Benutzer->Vorgang 1 ко многим Vorgang->akkFile 1 к 1 заполните таблички хотя бы двумя записями для примера. Это галиматья какая то а не модель данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 12:39 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
ivanraАтрибут cascade сделан для ленивых программистов и означает, что соответствующее действие будет транзитивно выполняться в связанной сущности. судя по его словам выше, у него главная самая верхняя сущность - Benutzer . Т.е. единственный каскад можно делать - удалить всю базу при удалении главной сущности. Вряд ли именно это ему и надо. Модель данных хромает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 12:42 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Petro123, авторсудя по его словам выше, у него главная самая верхняя сущность - Benutzer. Т.е. единственный каскад можно делать - удалить всю базу при удалении главной сущности. Вряд ли именно это ему и надо. Таблица бенутцер не редактируема . она заполняется автоматом приложением. М б в будущем админка и будет но вероятность процента 3. Особенность предприятия именно такова. Не я модель БД проектировал и не мне ее изменять. Политика предприятия. Видел модели и похуже. Проблема детачед ушла за счет изменения маппинга но перешла в другую плоскость. При добавлении akkfile в vorgang и следующем добавлении kkkfile akkfile при сохранении через репозиторий vorgang Код: java 1. задваивается. И все дочернии записи от akkfile тоже Вот маппинг связи vorgang -> akkfile - для kkkfile он такой же Код: java 1. 2. 3. 4. 5. А вот с другой стороны. со стороны akkfile Код: java 1. 2. 3. 4. Пробовал играть с касчкадами и типом транзакций . не помогает. Либо задваивает либо null index column for collection cascade all ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2016, 22:03 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александр, Какая разница, редактируется табла или нет. Тебя просят факты а не бла бла что проект старый. Кому охота разбираться в старье, если тебе лень: - 3 строки с данными - маппинг полный но без пустых геттеров - код до ошибки, чтобы мы засунули его в тест и он работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2016, 22:37 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Petro123, автор3 строки с данными - маппинг полный но без пустых геттеров Код ошибки есть актуальный маппинг я выложил. Я уже написал что проблема перешла в другую плоскость. См пост выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2016, 23:18 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александр, См.пост выше. Без записей и структуры таблиц нельзя сделать верный маппинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2016, 23:32 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
Petro123, записи из файлов добавлял. Кроме ошибки задвоения все работает. Вот ее природа мне не ясна. Читал что также есть такой глюк хибернейта как и не рекомендуется использовать list вместо set. Но это 1 ко многим а у меня 1 к 1. Сейчас нет исходников что есть выложил. Только завтра вечером. Если кто скажет где искать глюк задвоение заране спасибо. Как я понимаю это каскады неверные. Но мало с хиьбернейт работал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2016, 23:58 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александрзаписи из файлов добавлял. я имел ввиду если у тебя не пара таблиц, а все 6 работают, то нужен пример типа такого: id name123 Вася + create table чтобы создать у себя пример. А то фиг разберёшься с твое мешаниной Модели. зубок александрКроме ошибки задвоения все работает. Вот ее природа мне не ясна. Я спринг не знаю. По хиберу там всё элементарно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. поэтому найти заведомо рабочий пример 1 к 1 на спринге в сети и приводи свой пример к тому что работает. Что тут сложного то? У тебя не работает пара таблиц с единственной связью? Hello world? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 10:41 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александрПри добавлении akkfile в vorgang и следующем добавлении kkkfile akkfile при сохранении через репозиторий vorgang вот еслу у тебя не 2 таблы а более, то по полной выкладывай всю инфу что писал. Модель имеет значение (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 10:44 |
|
||
|
Ошибка В Хибернейте вставленные записи отсоединены
|
|||
|---|---|---|---|
|
#18+
зубок александр, теме уже две недели : за это время можно на гите набросать простой пример с простой объектной моделью - в виде теста и выложить сюда ... Назвать все для примера нормально чтобы мы поняли и смогли помочь ... Набросать пример тест - два дня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 12:35 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39277001&tid=2123881]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 482ms |

| 0 / 0 |
