|
|
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
Дброго всем времени! Есть сущности Characteristic и CharacteristicValue (hbm.xml пока не привожу). Каждый объект второй содержит один одъект первой. Т.е. у нас есть характеристика (name: Скорость полета) и значение характеристики (characteristic: Скорость полета; value: 100). И есть метод загрузки значения характеристики - addCharacteristicValue(String value, Characteristic characteristic); Код: 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. Все бы ничего, но возникают ошибки, если мы передаем в метод добавления объекты, уже существующих характеристик в БД (ERROR: duplicate key value violates unique constraint). Т.е. возникает вопрос. Если я формирую объект CharacteristicValue. И вызываю метод его сохрнанения Код: java 1. Но при этом предварительно создаем характеристики и одну из них передаем нашему value , то hibernate получается создает не только данную сущность (CharacteristicValue) в таблице, но еще и пытается создать все сущности, которые инкапсулирует обект value ? Т.е. в данном случае - создает новый новую запись в таблице Characteristic..... Так что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 10:50 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
Неужели все всё поняли? ) Я ничего не понял :( Что значит " но еще и пытается создать все сущности, которые инкапсулирует обект value?" ( (хибернейт не тыкал еще)) Ощущение, надо четко понимать что происходит в session.save(value); Скорее идет инесрт/апдейт в базу (что странно само по себе имхо), а на таблице уникальный ключ, то ну что тут поделаешь, так и должно быть ). Вообще выглядит странно, что мы вроде как сохраняем значение определенной "сущности", при этом говоря session.save(value); Почему бы не сделать метод save именно этой сущности?? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:30 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
NDAleksey, Вообще странно. Не должно такого быть. Хотелось бы все же увидеть маппинг и узнать почему он не в аннотациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:35 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
Такое может быть если id замаплен как обычное свойство, а не как id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:37 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
Т.е. ты говоришь session.save(value); Вот просто session.save(); еще можно было бы понять, можно было бы понять что-то типа Characteristic.save(value), но session.save(value); имхо негуд, странная модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:37 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
NDAleksey, Попробуй Session.saveOrUpdate() вместо Session.save() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:38 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
JDSТ.е. ты говоришь session.save(value); Вот просто session.save(); еще можно было бы понять, можно было бы понять что-то типа Characteristic.save(value), но session.save(value); имхо негуд, странная модель. :D Может таки почитаешь туториал по Hibernate для начала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:39 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
Blazkowicz:D Может таки почитаешь туториал по Hibernate для начала? Кажется догадываюсь как это примерно может выглядеть внутри: ) типа дальше session смотрит какой именно объект сохраняется и вызывает его метод условно execute. Доберусь, почитаю ) Но все равно Session.save(value) звучит как-то непривычно, типа как если commit(value) в СУБД хотя бы Session.save(characteristic) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 11:46 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNDAleksey, Попробуй Session.saveOrUpdate() вместо Session.save() Я и это пробовал, но не помогло. Вот пришел узнать сюда, как реально устроено у Hibernate. Вот маппинг (не через аннотация - мне так удобнее): Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 12:24 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
NDAleksey, А в базе случайно нет констрейнта, который этот Many2One превращает в One2One? Меня смущает unique="true" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 12:42 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNDAleksey, А в базе случайно нет констрейнта, который этот Many2One превращает в One2One? Меня смущает unique="true" Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 13:48 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
NDAlekseyCREATE UNIQUE INDEX uk_hwaanymqg2t9grhc2ko9migl0 ON characteristic_value USING BTREE (characteristic_id); Ну, вот же. One-to-One у вас в базе получился. Падает скорее всего не из-за pk, а из-за этого констрейнта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 14:00 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, все-все, дико извняюсь за топик.... все работает.... вызывал addCharacteristicValue и addCharacteristicValue друг за другом! Спасибо, но сам затупил дико. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 14:23 |
|
||
|
ERROR: duplicate key value violates unique constraint при сохранении объекта
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNDAlekseyCREATE UNIQUE INDEX uk_hwaanymqg2t9grhc2ko9migl0 ON characteristic_value USING BTREE (characteristic_id); Ну, вот же. One-to-One у вас в базе получился. Падает скорее всего не из-за pk, а из-за этого констрейнта Да-да, Вы правы. Поменял в мапере Код: xml 1. 2. на Код: xml 1. 2. Убрал это ограничение! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 14:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39066884&tid=2124862]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 311ms |

| 0 / 0 |
