์ด๋ฒ ๋ฐ์์๋ ๋ฐฐ์น๋ฅผ ๋๋ ค์ ํ ์คํธ ํด๋ด์ผ ํ๋ ๊ฒ๋ค์ด ์์๋ค.
๋ ์ด๋ค ใ ์๋ จ์ด ๋ค๊ฐ์ฌ๊น.. ๋๊ทผ ๊ฑฐ๋ฆฌ๋ฉฐ
์ค์๊ฐ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ธฐ ์ํด ์๋ฒ์ ์ ๊ทผํด์ ์ฐฝ์ ์ผ๋๊ณ ๋ฐฐ์น๋ฅผ ๋๋ ธ๋ค.
๊ทผ๋ฐ.. ์ญ์
Cannot set error status - response is already committed
์ด๋ฐ ์๋ฌ๋ฅผ .. ๋ง๋ฌ๋ค.
์ฒ์ ๋ณด๋ ์๋ฌ์๋ค. (์ฌ์ค ๊ฐ๋ฐ์์ ํ ์คํธ๋ฅผ ํด๋ดค์๋ ๊ทธ๋ฅ ๋ฐ์ดํฐ์ ๋ฌธ์ ์์ผ๋๊น ~ ๋ก๊ทธ๋ ๋์ด๋จ์ง๋ง
๋ง์ง๋ง ๋ฌธ์ฅ์ ์์ฝ๊ณ ๊ทธ๋ฅ ๋์ด๊ฐ๋ ์ .. ใ ์ด ๋นํฉ์ค๋ฝ๊ฒ ๋ง๋ค์ด์ ์ด๊ฒ ๋ชจ์ผ.. ์ด๋ฌ๋ฉด์ ์ฐพ์๋ดค๋ ๊ฒ ๊ฐ๋ค.)
๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, ์ ์๋ฌ๋ ๋ค๋ฅธ ๋ฐฐ์น๋ฅผ ๋๋ ธ์๋๋ ๋จ๊ณ ์๊ณ
ํฐ์ด์๊ฐ ์๋๋ผ๊ณ ํ๋จํ๊ณ ๊ทธ๋ฅ ๋์ด๊ฐ์๊ณ ํ์ ์ ํ ๊ธ์ฟค,, ํ๊ณ ๋์ด๊ฐ
์ ์ค ์์๊ฒ ์ง๋ง ์ข ๊ถ๊ธํด์
๋ฐ๋ก ๊ฒ์์ ๊ฐ๊ฒผ๋๋ฐ ์ฌ๋ฌ๊ฐ์ง ๊ธ๋ค์ด ์์๋ค..
๋ณธ๋ก ๋ถํฐ ๋งํ์๋ฉด ์ ์๋ฌ๋ Entity์์ ๋์ค๋ ๋ฌธ์ ์ด๋ค.
Spring Data JPA๋ฅผ ์ฌ์ฉํ์ ๋ ๋ฑ์ฅํ ๋ฌธ์ ์ด๋ค.
์ํ ์ฐธ์กฐ๋ผ๋ ์์ธ์ธ๋ฐ
๐JSON ์์ ์ํ์ฐธ์กฐ ๋ฌธ์
JPA ์์ ์๋ฐฉํฅ์ผ๋ก ์ฐ๊ฒฐ๋ ์ํฐํฐ๋ฅผ JSON ํํ๋ก ์ง๋ ฌํํ๋ ๊ณผ์ ์์, ์๋ก์ ์ ๋ณด๋ฅผ ๊ณ์ ์ํํ๋ฉฐ ์ฐธ์กฐํ์ฌ StackOverFlowError ๋ฅผ ๋ฐ์์ํค๋ ํ์์ด๋ค.
Spring boot ์์๋ @ResponseBody ๋ฅผ ๊ตฌํํ ์ Object ๋ฅผ JSON ํํ๋ก ๋ณํํ๊ธฐ ์ํด Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋๋ฐ,
์ด๋ Jackson ์ entity์ getter ๋ฅผ ํธ์ถํ์ฌ ํ๋์ ์ ๊ทผํ๊ณ , ์ง๋ ฌํ๋ฅผ ์ด์ฉํด Object๋ฅผ JSON ํํ๋ก ๊ฐ์ฒด๋ฅผ ๋ณํ์์ผ ๋ฐํํ๋ค.
๋ฌธ์ ๋ getter ๋ฅผ ํธ์ถํ๋ ๊ณผ์ ์์๋ถํฐ ์ํ์ฐธ์กฐ๊ฐ ๊ณ์ ๋ฐ์ํ๊ฒ ๋์ด stackoverflow ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
โ๏ธ์ง๋ ฌํ : ๊ฐ์ฒด/๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ํํ๋ก ๋ณํํ์ฌ ๋คํธ์ํฌ๋ฅผ ํตํด ์ก์ํ ์ ์๋๋ก ๋ง๋๋ ๊ฒ
์๋ฅผ ๋ค์ด Review ์ํฐํฐ๊ฐ ์๊ณ Photo ์ํฐํฐ๊ฐ ์๋ค๊ณ ์น์.
Review์ PK๋ฅผ Photo๊ฐ FK๋ก ๊ฐ์ง๊ณ ์๋ ์ํ์ด๋ค.
Response๋ฅผ ํ๊ฒ ๋๋ฉด JSON ํํ๋ก ๋งคํํ๊ธฐ ์ํด ๋ชจ๋ ์ํฐํฐ๋ฅผ ๋ถ๋ฌ์ค๋๋ฐ
์ด ๋ Photo๋ Review๋ฅผ ์ฐธ์กฐํ๊ณ Review๋ Photo๋ฅผ ์ฐธ์กฐํ๋ค.
๊ทธ๋ ๊ฒ ๊ณ์ ๋๊ณ ๋๋ฉฐ ์ฐธ์กฐ๋ฅผ ํด ๊ฒฐ๊ตญ Overflow๋ฅผ ๋ฐ์์ํจ ๊ฒ์ด์๋ค.
ํด๊ฒฐ
ํด๊ฒฐ์ฑ ์ @JsonManagedReference์ @JsonBackReference๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
1:N์ ๊ด๊ณ์์ 1์ @JsonManagedReference๋ฅผ, N์ @JsonBackReference๋ฅผ ๋ถ์ฌ์ค๋ค.
์ ์ด์ ์ํฐํฐ๋ก ๋ฐํํ์ง ์๊ณ DTO๋ก ๋ฐํํ๋ฉด ์์๊ฐ์ด ์์จ๋ ํด๊ฒฐํ ์ ์๋ค.
(์ถ๊ฐ ์์ ํ๊ธฐ)
https://layton0-0.tistory.com/49
Cannot set error status - response is already committed ์ค๋ฅ
์ง์ง ๊ตฌ์ฑ์ ์๋ฒฝํ๊ฒ ํ๋ค๊ณ ์๊ฐํ๋๋ฐ ๊ฐ์๊ธฐ ์ฌ๋ผ์ง์ง ์๋ ์๋ฌ๊ฐ ์๊ฒผ๋ค. Cannot set error status - response is already committed ์ด ์๋ฌ๋ค. ์์ง๋ ๊ณต๋ถํ ๊ฒ๋ค์ด ํ์ฐธ ๋ง์ ๊ฒ ๊ฐ๋ค. ๋ณธ๋ก ๋ถํฐ ๋งํ์
layton0-0.tistory.com
https://blogshine.tistory.com/436
[JPA] JSON ์ง๋ ฌํ ์ํ ์ฐธ์กฐ ํด๊ฒฐํ๊ธฐ
์ค๋๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๋ ๋์ค์ ๊ฑฐ์ ๋งค๋ฒ ๋ง๋์๋ ์ํ ์ฐธ์กฐ ๋ฌธ์ ๋ฅผ ๋ง๋๊ฒ ๋์๋ค. ์ด๋ฒ์ด ์ฒ์์ ์๋์ง๋ง, ํ๋ฒ์ฏค ์ ๋ฆฌํด๋ณผ๋งํ ๋ด์ฉ์ธ๊ฒ ๊ฐ์ ์ ๋ฆฌํด๋๋ค. 1. JSON์์ ์ํ ์ฐธ์กฐ ๋ฌธ์
blogshine.tistory.com
'23. Back-end > 23. JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์น์ 5] ์์๊ณผ ์กฐํฉ, Value Object, ์ผ๊ธ ์ปฌ๋ ์ (1) | 2025.01.17 |
---|---|
๋ค์ด์บ์คํ instanceof, ๋คํ์ฑ (0) | 2024.03.31 |
Library(API) 3ํ, Calendar, text (0) | 2022.01.14 |
ํ ํฐ(Tokenizer), List, Set,Map, Generic (0) | 2022.01.12 |
Library (API) 2ํ, StringBuffer, Wrapper (0) | 2022.01.11 |