|
|
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
Гляньте, что не так? Прикрепляю трейс ошибки - спасибо. 1. Пакую параметры которые нужно сохранить в отдельный класс(так удобней). Код: java 1. 2. 3. 4. 5. 6. 7. 8. 2. Сохраняю так. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Дебаггером шел - ошыбка вылетает на посл строчке session.getTransaction().commit(); 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. 4. Код: 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. 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. В базу как-то заносит, но я не уверен что правильно, тем более транзакция заканчивается ошибкой. Так же, не уверен на счет правильности соединений с классом Player. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 13:06 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
Проблема с каскадным сохранением. У вас почему-то только REFRESH указан. В этом случае хибернейт ожидает, что вы сналача сохраните новый Player, которого ещё нет в базе, а потом SaveParams. Если вы хотите чтобы при сохранении SaveParams, хибернейт сам добавлял и новых Player в БД, то нужно указать соответствующие типы в каскаде - ALL\PERSIST\SAVE_UPDATE в зависимости от того что вам больше подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 13:10 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
Не пинайте за глупые вопросы. Сейчас вникать во все тонкости Hibernate чуток нету времени. Нужно сохранять этот объект "SaveParams", а потом тащить его из базы. id в данном случае это serverName. И еще я заметил что при добавлении просто заменяется содержимое, а не становится отдельной строкой в таблице.. BlazkowiczПроблема с каскадным сохранением. У вас почему-то только REFRESH указан. В этом случае хибернейт ожидает, что вы сналача сохраните новый Player, которого ещё нет в базе, а потом SaveParams. Если вы хотите чтобы при сохранении SaveParams, хибернейт сам добавлял и новых Player в БД, то нужно указать соответствующие типы в каскаде - приблизительно понятно. Но не совсем. :( BlazkowiczALL\PERSIST\SAVE_UPDATE в зависимости от того что вам больше подходит. - не знаю, что больше подходит. Нужно сохранять этот класс а потом читать и все, Только как сделать, чтоб записи добавлялись, а не заменялись. :( в конфиге hibernate.hbm2dll.auto стоит update Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 13:56 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
hibernate.hbm2dll.auto не для этого - он для автоматического отслеживания структуры таблиц, но не данных. А если хочешь, чтобы вне зависимости от объекта он не перезаписывался, а добавлялся, просто обнуляй у объекта ключевое поле @Id. У-у-у, а что, имя сервера - это ключевое поле? Странная структура. Так для строки с одинаковыми serverName будет идти перезапись. Как бы напрашивается совет: Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:04 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
_webdev_Не пинайте за глупые вопросы. Сейчас вникать во все тонкости Hibernate чуток нету времени. LOL. Тогда пишите на SQL/myBatis. В хибере пока во все тонкости не вникнешь, тыкать бесполезно. _webdev_Нужно сохранять этот объект "SaveParams", а потом тащить его из базы. ОК. Это какое отношение имеет к проблеме? ORM он для того и нужен. _webdev_ id в данном случае это serverName. И еще я заметил что при добавлении просто заменяется содержимое, а не становится отдельной строкой в таблице.. id это PK - первичный ключ. Он уникален в таблице. Получить две записи с одним ID база не даст. Так что вас удивляет? _webdev_приблизительно понятно. Но не совсем. :( Раз вас всё равно, тогда ответ вот: @ManyToOne(cascade={CascadeType.ALL} _webdev_Только как сделать, чтоб записи добавлялись, а не заменялись. :( О каких именно записях речь? Мы как минимум две сущности видим. _webdev_в конфиге hibernate.hbm2dll.auto стоит update DDL это операции манипуляции структурами таблиц - CREATE, ALTER и т.п. SQL это операции с данными - записи hbm2dll отвечает за создание\апдейт структур в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:12 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
IDVsbruckhibernate.hbm2dll.auto не для этого - он для автоматического отслеживания структуры таблиц, но не данных. А если хочешь, чтобы вне зависимости от объекта он не перезаписывался, а добавлялся, просто обнуляй у объекта ключевое поле @Id. - так что тогда следует написать, чтоб таблицы создавались автоматически? И данные добавлялись и не перезаписывались? :( IDVsbruckУ-у-у, а что, имя сервера - это ключевое поле? Странная структура. Так для строки с одинаковыми serverName будет идти перезапись. Как бы напрашивается совет: - да, я это понимаю, у меня исключается одинаковое "serverName" - нужно именно так, так как я хочу потом тащить из базы по этому полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:14 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
BlazkowiczLOL. Тогда пишите на SQL/myBatis. В хибере пока во все тонкости не вникнешь, тыкать бесполезно. - нужен именно Hibernate. Blazkowiczid это PK - первичный ключ. Он уникален в таблице. Получить две записи с одним ID база не даст. Так что вас удивляет? - да, это я понимаю, и понимаю как работать с БД. BlazkowiczРаз вас всё равно, тогда ответ вот: @ManyToOne(cascade={CascadeType.ALL} - все равно рубит ошибку. Если она другая сейчас закину трейс. BlazkowiczО каких именно записях речь? Мы как минимум две сущности видим. - есть класс "ServerParams" в нем несколько полей простых типов и два поля с типом Player. Нужно сохранить обьект "ServerParams", а потом читать его по ключевому полю "serverName". BlazkowiczDDL это операции манипуляции структурами таблиц - CREATE, ALTER и т.п. SQL это операции с данными - записи hbm2dll отвечает за создание\апдейт структур в БД приблизительно понятно, а как сделать, чтоб таблицы раз создались и потом только в них записывать нужные мне объекты? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:21 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
Установил в Код: java 1. 2. 3. 4. 5. 6. 7. Теперь ругается, что сл длинное поле - там 144 значения типа Integer Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:26 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
_webdev_ да, это я понимаю, и понимаю как работать с БД. Тогда к чему эти пассажи про "добавляет"\"заменяет" записи:? Включите SQL log и смотрите. Если ID установлен, то UPDATE, если ID - null, то INSERT. Всё просто и прямо. _webdev_ есть класс "ServerParams" в нем несколько полей простых типов и два поля с типом Player. Нужно сохранить обьект "ServerParams", а потом читать его по ключевому полю "serverName". У вас Player.id имеет тим int. Поэтому даже для новых записей там значение 0. Нужно использовать тип Integer, который у новых записей будет null. Либо указать хиберу что 0 здесь - индикатор несохраненной сущности. _webdev_ а как сделать, чтоб таблицы раз создались и потом только в них записывать нужные мне объекты? почитайте в мануале о возможных значениях этой опции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:27 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
:( Понятн, значит я попал.. :( У меня сл мало времени, я просто не успею разобраться во всех тонкостях. Понимаю, что с хибернейтом не так просто, но я ж и много не прошу, просто сохранить и прочитать потом объект. Хорошо, можете закинуть пример хотя бы, как это провернуть с одним классом? Это: - автоматически создать таблицу по классу "ServerParams", и потом добавлять в нее записи где ключевое поле "serverName"(оно будет всегда уникальное). и что добавить в hibernate.config К примеру вот такой класс Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 14:40 |
|
||
|
Hibernate save the transient instance before flushing???
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Есть 2 сущности Код: 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. Есть JpaRepository<Teacher, Long>, в котором есть метод Код: java 1. Также есть rest сервис, который в итоге вызывает метод findByStudent. В теле запроса передается что-то типа(json информация о студенте, например фамилия) Код: javascript 1. Но в итоге падает с ошибкой Код: java 1. Если скажем в JpaRepository создать метод(со всеми вытекающими), например Код: java 1. то ошибки не возникает, но результат пустой. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 20:50 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=55&tid=2122407]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 372ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...