|
|
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Плохо разбираюсь в хибернейте, вот когда совсем не разбирался, по случайности добавил зачем-то Код: java 1. полностью выглядит так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Сегодня столкнулся с такой проблемой, что если в detached объекте меняется locality и вызвать merge, то запись не обновляется, а создается новая. Битый час гуглил и никак не мог понять в чем проблема. Detached объект был с нужным id, в базе есть PK по этому полю, но он почему-то делает инсерт новой записи. Через час колупания обратил внимание на эти записи и решил их удалить, так как они в моем случае не нужны. Даже не надеялся что это исправит проблему, но.. о чудо, все заработало. Как это объяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 19:15 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
гммм, проблема именно в optional=false если поле null и optional=false, он вместо обновления он создает новую запись. Это баг или фича? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 19:20 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Hett, Сейчас не могу посмотреть в доку, чтобы ответить. Но хочу обратить внимание на то что в JPA API и в Hibernate Session метод merge делает не одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 19:44 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Hettв detached объекте меняется locality и вызвать merge, то запись не обновляется, а создается новая MERGE объединяет объекты. locality_id у вас FK в базе Значит сменив его вы фактически создали другой адрес и ОРМ объединил два объекта. Один уже был = остался и Второй создали = INSERT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:04 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Hettвот когда совсем не разбирался, по случайности добавил зачем-то в большинстве случае, CASCADE ALL работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:10 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
попробуйте убрать optional и cascade : Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:27 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Petro123, Так объединил или создал другой? Причём тут внешний ключ, если объект по первичному ключу идентифицируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:28 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Usman, Да, уже, без опционал все нормально работает. Остался только вопрос - почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:30 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
HettПричём тут внешний ключ, если объект по первичному ключу идентифицируется. Foregen Key для одного объекта - внешний, а для другого - первичный. https://ru.wikipedia.org/wiki/Внешний_ключ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:38 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Petro123HettПричём тут внешний ключ, если объект по первичному ключу идентифицируется. Foregen Key для одного объекта - внешний, а для другого - первичный. https://ru.wikipedia.org/wiki/Внешний_ключ Проблема именно с этим entity. Внешний ключ, к тому же, не обязательно на первичный может ссылаться. Достаточно чтобы поле содержало юник констрейт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 20:47 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
HettВнешний ключ, к тому же, не обязательно на первичный может ссылаться. Достаточно чтобы поле содержало юник констрейт Но у тебя же в entity_id пишется PK? Мало ли что в Африке бывает? Я знаю кучу провайдеров, которые работают только с PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 21:00 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Hett, Давно бы базу привёл. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 21:01 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
Petro123, Хоть бы раз ты по существу написал. Проблему еще во втором посте решили, если ты не заметил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 21:11 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
BlazkowiczHett, Сейчас не могу посмотреть в доку, чтобы ответить. Но хочу обратить внимание на то что в JPA API и в Hibernate Session метод merge делает не одно и то же. Разве? оО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 21:15 |
|
||
|
JPA merge
|
|||
|---|---|---|---|
|
#18+
HettPetro123, Хоть бы раз ты по существу написал. Проблему еще во втором посте решили, если ты не заметил. я отвечаю только на твою галиматью: - что у тебя не PK - что ты не менял объект И твой вопрос - почему так происходит. Если ты заметил, то ты тыркаешь аннотации ОРМ как телёнок уже второй раз за пол года. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 21:16 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=63&tid=2122740]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 324ms |

| 0 / 0 |
