๐ ๋ฒ๊ทธ ์ค๋ช
PATCH /api/v1/admin/battles/{id} ๋ก ๋ฐฐํ ์ต์
ํ๊ทธ๋ฅผ ์์ ํ ๋, ๊ธฐ์กด์ ์ด๋ฏธ ๋ถ์ด์๋ ํ๊ทธ๋ฅผ ๋ค์ ๋ณด๋ด๋ฉด 500 ์๋ฌ๊ฐ ๋๋ค.
๐ ์ฌํ ๋ก๊ทธ
ERROR: duplicate key value violates unique constraint "battle_option_tags_battle_option_id_tag_id_key"
Detail: Key (battle_option_id, tag_id)=(42, 6) already exists.
๐ ์์ธ
BattleServiceImpl.replaceBattleOptionTags()๊ฐ ๊ธฐ์กด ํ๊ทธ๋ฅผ deleteAll()ํ ๋ค ๋ฐ๋ก saveBattleOptionTags()๋ก ์ ํ๊ทธ๋ฅผ ์ ์ฅํ๋๋ฐ, flush๊ฐ ์์ด์ Hibernate์ ๊ธฐ๋ณธ flush ์์(insert๊ฐ delete๋ณด๋ค ๋จผ์ ์คํ)์ delete๊ฐ ๋ฐ์๋๊ธฐ ์ ์ ๋์ผํ (battle_option_id, tag_id) insert๊ฐ ๋๊ฐ ์ ๋ํฌ ์ ์ฝ ์๋ฐ์ด ๋ฐ์ํ๋ค.
๋ฐฐํ ๋ ๋ฒจ ํ๊ทธ ๊ต์ฒด(updateBattle์ request.tagIds() ์ฒ๋ฆฌ)๋ ์ด๋ฏธ deleteByBattle() ํ flush()๋ฅผ ํธ์ถํ๋๋ฐ, ์ต์
๋ ๋ฒจ ํ๊ทธ ๊ต์ฒด๋ง ์ด ํจํด์ด ๋น ์ ธ์์๋ค.
โ
ํด๊ฒฐ
replaceBattleOptionTags()์์ deleteAll() ์งํ flush() ํธ์ถ ์ถ๊ฐ.
๐ ๋ฒ๊ทธ ์ค๋ช
PATCH /api/v1/admin/battles/{id}๋ก ๋ฐฐํ ์ต์ ํ๊ทธ๋ฅผ ์์ ํ ๋, ๊ธฐ์กด์ ์ด๋ฏธ ๋ถ์ด์๋ ํ๊ทธ๋ฅผ ๋ค์ ๋ณด๋ด๋ฉด 500 ์๋ฌ๊ฐ ๋๋ค.๐ ์ฌํ ๋ก๊ทธ
๐ ์์ธ
BattleServiceImpl.replaceBattleOptionTags()๊ฐ ๊ธฐ์กด ํ๊ทธ๋ฅผdeleteAll()ํ ๋ค ๋ฐ๋กsaveBattleOptionTags()๋ก ์ ํ๊ทธ๋ฅผ ์ ์ฅํ๋๋ฐ, flush๊ฐ ์์ด์ Hibernate์ ๊ธฐ๋ณธ flush ์์(insert๊ฐ delete๋ณด๋ค ๋จผ์ ์คํ)์ delete๊ฐ ๋ฐ์๋๊ธฐ ์ ์ ๋์ผํ (battle_option_id, tag_id) insert๊ฐ ๋๊ฐ ์ ๋ํฌ ์ ์ฝ ์๋ฐ์ด ๋ฐ์ํ๋ค.๋ฐฐํ ๋ ๋ฒจ ํ๊ทธ ๊ต์ฒด(
updateBattle์request.tagIds()์ฒ๋ฆฌ)๋ ์ด๋ฏธdeleteByBattle()ํflush()๋ฅผ ํธ์ถํ๋๋ฐ, ์ต์ ๋ ๋ฒจ ํ๊ทธ ๊ต์ฒด๋ง ์ด ํจํด์ด ๋น ์ ธ์์๋ค.โ ํด๊ฒฐ
replaceBattleOptionTags()์์deleteAll()์งํflush()ํธ์ถ ์ถ๊ฐ.