Spring Framework/JPA

Spring Framework/JPA

[Spring/JPA] Open-in-view์™€ @Transactional

์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ์œ„์™€ ๊ฐ™์€ WARN์ด ํ‘œ์‹œ๋œ๋‹ค. spring.jpa.open-in-view์˜ ๊ธฐ๋ณธ๊ฐ’์€ true์ด๋ฉฐ ํ•ด๋‹นํ•˜๋Š” WARN์€ false ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด ์—†์–ด์ง„๋‹ค. ๋ฐฐํฌ์šฉ ์ชฝ yml ํŒŒ์ผ์— spring.jpa.open-in-view๋ฅผ false๋กœ ํ•ด์ฃผ์—ˆ๊ณ , ๋กœ์ปฌ ์ชฝ์—๋Š” ๋ณ„๋‹ค๋ฅธ ์ง€์ •์„ ํ•˜์ง€ ์•Š๊ณ  ๋ฐฐํฌํ–ˆ๋”๋‹ˆ ๋ฐฐํฌ ์‚ฌ์ดํŠธ์—์„œ ๊ธ€ ์ „์ฒด๊ฐ€ ์กฐํšŒ๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. open-in-view:false ๋ฅผ ์ฃผ์„์ฒ˜๋ฆฌํ•˜๋‹ˆ ๋‹คํ–‰ํžˆ ๊ธ€ ์ „์ฒด ์กฐํšŒ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ๋‹ค. open-in-view๊ฐ€ ๋ฌด์—‡์ด๊ธธ๋ž˜ ์กฐํšŒ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ๋‹ค! ๋”๋ณด๊ธฐ ์˜ˆ์ „์— ๋“ค์—ˆ๋˜ ๊น€์˜ํ•œ ๊ฐ•์‚ฌ๋‹˜์˜ '์‹ค์ „! ์Šคํ”„๋ง๋ถ€ํŠธ์™€ JPA ํ™œ์šฉ2 - API ๊ฐœ๋ฐœ ์„ฑ๋Šฅ์ตœ์ ํ™”' ๊ฐ•์˜์—์„œ ์„น์…˜5 API ๊ฐœ๋ฐœ ๊ณ ๊ธ‰-์‹ค๋ฌด ํ•„์ˆ˜ ์ตœ์ ํ™” -..

Spring Framework/JPA

[Spring/JPA] JPA Entity๊ฐ€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๋Š” ์ด์œ  - Reflection

JPA ์—”ํ‹ฐํ‹ฐ์—์„œ ์ƒ์„ฑ์ž๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ๊ธฐ๋ณธ์ƒ์„ฑ์ž(@NoArgsConstructor๋ฅผ ์ •์˜ํ•ด์•ผํ•œ๋‹ค๋Š” ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. + public, protected๋กœ ์„ ์–ธํ•ด์•ผํ•จ ! ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ •์˜ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์—†์–ด์„œ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๊ฒ ๋‹ค. ๐Ÿ‘‰ ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด Java Reflection API์—์„œ ๊ธฐ๋ณธ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. JPA๋Š” DB ๊ฐ’์„ ๊ฐ์ฒด ํ•„๋“œ์— ์ฃผ์ž…ํ•  ๋•Œ, ๋™์ ์œผ๋กœ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ์ƒ์„ฑ์ž๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Reflection์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” Reflection์ด๋ผ๋Š” API๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๊ทธ๋Ÿผ Reflection์€ ๋ญ˜๊นŒ.... Java Reflection ์ž๋ฐ”์—์„œ๋Š” Reflection์ด๋ผ๋Š” API๋ฅผ ์ œ๊ณตํ•œ๋‹ค. R..

soogoori
'Spring Framework/JPA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก