๋ฐ˜์‘ํ˜•
[JPA] ์˜์†์„ฑ ์ „์ด(Cascade)

์†Œ์Šค ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. (commit hash: 85838b8) > git clone https://github.com/lcalmsky/jpa > git checkout 85838b8 Warning: ์ตœ์ข… ์ปค๋ฐ‹ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด ๋ชจ๋“  ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆœ ์—†์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Overview ์ฆ‰์‹œ ๋กœ๋”ฉ(EAGER)๊ณผ ์ง€์—ฐ ๋กœ๋”ฉ(LAZY)์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading) Unit๋ฅผ ์กฐํšŒํ•˜๋ฉด์„œ Factory์˜ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ๊ตณ์ด Factory๋ฅผ ๊ฐ™์ด ์กฐํšŒํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์ง€์—ฐ ๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋งคํ•‘๊ด€๊ณ„๋ฅผ ์ง€์ •ํ•œ ์• ๋„ˆํ…Œ์ด์…˜์— fetch ์†์„ฑ์„ FetchType.LAZY๋กœ ์„ค์ •ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. package com.t..

JPA 2022. 7. 10. 10:30
[JPA] ์ฆ‰์‹œ ๋กœ๋”ฉ(Eager)๊ณผ ์ง€์—ฐ ๋กœ๋”ฉ(Lazy)

์†Œ์Šค ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. (commit hash: 85838b8) > git clone https://github.com/lcalmsky/jpa > git checkout 85838b8 Warning: ์ตœ์ข… ์ปค๋ฐ‹ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด ๋ชจ๋“  ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆœ ์—†์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Overview ์ฆ‰์‹œ ๋กœ๋”ฉ(EAGER)๊ณผ ์ง€์—ฐ ๋กœ๋”ฉ(LAZY)์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading) Unit๋ฅผ ์กฐํšŒํ•˜๋ฉด์„œ Factory์˜ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ๊ตณ์ด Factory๋ฅผ ๊ฐ™์ด ์กฐํšŒํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์ง€์—ฐ ๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋งคํ•‘๊ด€๊ณ„๋ฅผ ์ง€์ •ํ•œ ์• ๋„ˆํ…Œ์ด์…˜์— fetch ์†์„ฑ์„ FetchType.LAZY๋กœ ์„ค์ •ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. package com.t..

JPA 2022. 7. 7. 10:30
[JPA] ์ƒ์†๊ด€๊ณ„ ๋งคํ•‘(2): @MappedSuperclass

์†Œ์Šค ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. (commit hash: ba15d2d) > git clone https://github.com/lcalmsky/jpa > git checkout ba15d2d Warning: ์ตœ์ข… ์ปค๋ฐ‹ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด ๋ชจ๋“  ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆœ ์—†์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Overview ๊ฐ์ฒด๊ฐ„ ์ƒ์†์„ ์ด์šฉํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” Entity๋‚˜ Table๊ณผ ๊ด€๊ณ„๊ฐ€ ์ „ํ˜€ ์—†์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” @MappedSuperclass์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. @MappedSuperclass ๊ฐ์ฒด์—์„œ ๊ณตํ†ต ์†์„ฑ์„ ์ถ”์ƒ ๊ฐ์ฒด๋กœ ์ด๋™์‹œํ‚ค๊ณ  ์ž์‹ ๊ฐ์ฒด๋“ค์ด ํ•ด๋‹น ์†์„ฑ์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํ”ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ…์—์„œ๋Š” Entity ๊ฐ„ ๊ด€๊ณ„(์Šˆํผํƒ€์ž…, ์„œ๋ธŒํƒ€์ž…)๋„ ์ค‘์š”ํ–ˆ์—ˆ๋Š”๋ฐ์š”, ์—ฌ๊ธฐ์„œ ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ E..

JPA 2022. 7. 6. 10:30
[JPA] ์ƒ์†๊ด€๊ณ„ ๋งคํ•‘(1): ์ƒ์† ์ „๋žต

์†Œ์Šค ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. (commit hash: c93b796) > git clone https://github.com/lcalmsky/jpa > git checkout c93b796 Warning: ์ด๋ฒˆ ์†Œ์Šค ์ฝ”๋“œ๋Š” ์ตœ์ข… ์ปค๋ฐ‹ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด ๋ชจ๋“  ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆœ ์—†์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Overview ๊ฐ์ฒด์˜ ์ƒ์†๊ด€๊ณ„๋ฅผ ํ…Œ์ด๋ธ”๋กœ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์Šˆํผํƒ€์ž…, ์„œ๋ธŒํƒ€์ž… ๊ด€๊ณ„ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์ƒ์† ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๊ฐ์ฒด๋Š” ์ƒ์†๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ์ด ์ƒ์†๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ๋ฒ•์ด DB ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•์—๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์Šˆํผํƒ€์ž…, ์„œ๋ธŒํƒ€์ž… ๊ด€๊ณ„์ธ๋ฐ ํ™•์žฅ๋œ ER ๋ชจ๋ธ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์Šˆํผ-์„œ๋ธŒ ํƒ€์ž…์ด ๋„์ถœ๋˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ณตํ†ต๋œ..

JPA 2022. 7. 5. 10:30
[JPA] ๋‹ค์–‘ํ•œ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘

์†Œ์Šค ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. (commit hash: 6695e56) > git clone https://github.com/lcalmsky/jpa > git checkout 6695e56 Overview ๋‹ค์–‘ํ•œ ์—ฐ๊ด€๊ด€๊ณ„์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘์‹œ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ์ด 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ(๋‹จ๋ฐฉํ–ฅ, ์–‘๋ฐฉํ–ฅ) ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฃผ์ธ ๋‹ค์ค‘์„ฑ ์ด์ค‘ ๋‘ ๊ฐ€์ง€๋Š” ์ด๋ฏธ ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ์‚ดํŽด๋ณด์•˜์œผ๋ฏ€๋กœ ๋‹ค์ค‘์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์ค‘์„ฑ ์‚ฌ์‹ค ๋‹ค์ค‘์„ฑ๋„ ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃจ๊ธดํ–ˆ์ง€๋งŒ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. DB ๊ด€์ ์—์„œ์˜ ๋‹ค์ค‘์„ฑ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. JPA๋Š” ๊ฐ์ฒด๋ฅผ ํ…Œ์ด๋ธ”์— ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์• ๋„ˆํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ์ค‘ ๋‹ค์ค‘์„ฑ์— ํ•ด๋‹นํ•˜๋Š” ์• ๋„ˆํ…Œ์ด์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. @ManyToOne: ๋‹ค๋Œ€์ผ @OneToM..

JPA 2022. 7. 4. 10:30
๋ฐ˜์‘ํ˜•
๊ณต์ง€์‚ฌํ•ญ
Total
181,998
Today
35
Yesterday
551
๋งํฌ
ยซ   2022/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
๊ธ€ ๋ณด๊ด€ํ•จ