๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring๐Ÿƒ

๊ฒŒ์‹œํŒ์˜ ๋Œ“๊ธ€์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๋Œ“๊ธ€ ์‚ญ์ œ ์—†์ด ๊ฒŒ์‹œ๋ฌผ๋งŒ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ˆ์™ธ Referential integrity constraint violation : 1) JPA

728x90

๋ถ€๋ชจ(๊ฒŒ์‹œ๋ฌผ) -> ์ž์‹(๋Œ“๊ธ€) ๊ด€๊ณ„๋กœ DB๊ฐ€ ์„ค์ •๋˜์–ด์žˆ์„ ๋•Œ, ๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ง€์šธ ๋•Œ ๋‚จ๊ฒจ์ง€๋Š” ์ž์‹ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด

 

๊ทธ ์ž์‹ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ณ ์•„ ๊ฐ์ฒด๋กœ ๋ณธ๋‹ค. ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘˜ ๊ฒฝ์šฐ Referential integrity constraint violation SQL ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ๊ณ ์•„ ๊ฐ์ฒด ์ œ๊ฑฐ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

@OneToMany(mappedBy = "post", orphanRemoval = true)
private List<Comment> commentList = new ArrayList<>();

 

์ถœ์ฒ˜ : ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

๊ณ ์•„ ๊ฐ์ฒด ์ œ๊ฑฐ๋Š” ์ฐธ์กฐ๊ฐ€ ์ œ๊ฑฐ๋œ ์—”ํ‹ฐํ‹ฐ๋Š” ๋‹ค๋ฅธ ๊ณณ์—์„œ๋„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š” ๊ณ ์•„ ๊ฐ์ฒด๋กœ ๋ณด๊ณ  ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ณณ์ด ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ @OneToMany, @OneToOne์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

+ ๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ๋ฅผ  ์ œ๊ฑฐํ•˜๋ฉด ์ž์‹ ์—”ํ‹ฐํ‹ฐ๋„ ํ•จ๊ป˜ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•œ๋‹ค ~ CascadeType.REMOVE๋ฅผ ์„ค์ •ํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

728x90