[JPA] ๊ฐ’ ํƒ€์ž…

์—”ํ‹ฐํ‹ฐ ํƒ€์ž…(Entity Type)๊ณผ ๊ฐ’ ํƒ€์ž…(Value Type)์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์—”ํ‹ฐํ‹ฐ ํƒ€์ž…์˜ ํŠน์ง• ์‹๋ณ„์ž(@Id)๊ฐ€ ์žˆ๋‹ค. ์—”ํ‹ฐํ‹ฐ ํƒ€์ž…์€ ์‹๋ณ„์ž๊ฐ€ ์žˆ๊ณ  ์‹๋ณ„์ž๋กœ ๊ตฌ๋ถ„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ์žˆ๋‹ค. ์ƒ์„ฑํ•˜๊ณ , ์˜์†ํ™” ํ•˜๊ณ , ์†Œ๋ฉธํ•˜๋Š” ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ์žˆ๋‹ค. em.persist(entity)๋กœ ์˜์†ํ™” ํ•œ๋‹ค. em.remove(entity)๋กœ ์ œ๊ฑฐํ•œ๋‹ค. ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ์กฐ ๊ฐ’์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ๊ณต์œ  ์ฐธ์กฐ๋ผ ํ•œ๋‹ค. ๊ฐ’ ํƒ€์ž…์˜ ํŠน์ง• ์‹๋ณ„์ž๊ฐ€ ์—†๋‹ค. ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ์—”ํ‹ฐํ‹ฐ์— ์˜์กดํ•œ๋‹ค. ์Šค์Šค๋กœ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ณ  ์—”ํ‹ฐํ‹ฐ์— ์˜์กดํ•œ๋‹ค. ์˜์กดํ•˜๋Š” ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๊ฐ™์ด ์ œ๊ฑฐ๋œ๋‹ค. ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค. ์—”ํ‹ฐํ‹ฐ ํƒ€์ž…๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค. ๋Œ€์‹  ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค...

Programming/JPA 2020. 11. 26. 16:23
[JPA] ์—”ํ‹ฐํ‹ฐ ๋งคํ•‘

4.1 @Entity JPA๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘ํ•  ํด๋ž˜์Šค๋Š” @Entity ์–ด๋…ธํ…Œ์ด์…˜์„ ํ•„์ˆ˜๋กœ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค. @Entity๊ฐ€ ๋ถ™์€ ํด๋ž˜์Šค๋Š” JPA๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์—”ํ‹ฐํ‹ฐ๋ผ ๋ถ€๋ฅธ๋‹ค. (name ์†์„ฑ ์ •์˜ํ•˜์ง€ ์•Š์„ ์‹œ ํด๋ž˜์Šค ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๋จ) @Entity ์ ์šฉ ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋Š” ํ•„์ˆ˜ (ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” public ๋˜๋Š” protected ์ƒ์„ฑ์ž) final ํด๋ž˜์Šค, enum, interface, inner ํด๋ž˜์Šค์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ €์žฅํ•  ํ•„๋“œ์— final์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. JPA๊ฐ€ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด ์ƒ์„ฑ์ž๋Š” ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ž๋ฐ”๋Š” ์ƒ์„ฑ์ž๊ฐ€ ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ ๋‹ค. public Member(..

Programming/JPA 2020. 11. 24. 15:53
[JPA] ์˜์†์„ฑ ๊ด€๋ฆฌ

3.1 ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ํŒฉํ† ๋ฆฌ์™€ ์—”ํ‹ฐํ‹ฐ ๋ฉ”๋‹ˆ์ € ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ํŒฉํ† ๋ฆฌ : ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋ฅผ ๋งŒ๋“œ๋Š” ๊ณต์žฅ. ๊ณต์žฅ์„ ๋งŒ๋“œ๋Š” ๋น„์šฉ์ด ์ƒ๋‹นํžˆ ํฌ๊ธฐ์— ํ•œ๊ฐœ๋งŒ ๋งŒ๋“ค์–ด์„œ ์• ํ”Œ๋ฆฌ ์ผ€์ด์…˜ ์ „์ฒด์— ๊ณต์œ ํ•˜๋„๋ก ์„ค๊ณ„๋จ. ๋ฐ˜๋ฉด์— ๊ณต์žฅ์—์„œ ์•คํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋น„์šฉ์€ ๊ฑฐ์˜ ๋“ค์ง€ ์•Š์Œ ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ํŒฉํ† ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•ด๋„ ์•ˆ์ „ํ•˜๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ ๊ฐ„์— ๊ณต์œ ํ•ด๋„ ๋˜์ง€๋งŒ, ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•˜๋ฉด ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์Šค๋ ˆ๋“œ ๊ฐ„์— ์ ˆ๋Œ€ ๊ณต์œ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. EntityManagerFactory์—์„œ ๋‹ค์ˆ˜์˜ ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋ฅผ ์ƒ์„ฑ ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์ด ๊ผญ ํ•„์š”ํ•œ ์‹œ์  ๊นŒ์ง€ ์ปค๋„ฅ์…˜์„ ์–ป์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•  ๋•Œ ์ปค๋„ฅ์…˜์„ ํš๋“ํ•œ๋‹ค. EntityManager2๋Š” ์ปค๋„ฅ์…˜์„ ..

Programming/JPA 2020. 11. 24. 10:28
[JPA] JPA๋ž€

1.1 SQL์„ ์ง์ ‘ ๋‹ค๋ฃฐ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์  ์ž๋ฐ”๋กœ ์ž‘์„ฑํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ JDBC API๋ฅผ ์ด์šฉํ•ด์„œ SQL์„ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ „๋‹ฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋Š” ๊ฐ์ฒด๊ตฌ์กฐ์™€๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด ์ง€ํ–ฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ค‘๊ฐ„์—์„œ SQL๊ณผ JDBC API๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€ํ™˜ ์ž‘์—…์„ ์ง์ ‘ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋ฌธ์ œ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— CRUDํ•˜๋ ค๋ฉด ๋„ˆ๋ฌด ๋งŽ์€ SQL๊ณผ JDBC API ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ” ๋งˆ๋‹ค ์ด๋Ÿฐ ๋น„์Šทํ•œ ์ผ์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ SQL์„ ์ง์ ‘ ๋‹ค๋ฃฐ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ง„์ •ํ•œ ์˜๋ฏธ์˜ ๊ณ„์ธต ๋ถ„ํ• ์ด ์–ด๋ ต๋‹ค. ์—”ํ‹ฐํ‹ฐ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค. SQL์— ์˜์กด์ ์ธ ๊ฐœ๋ฐœ์„ ํ”ผํ•˜๊ธฐ ์–ด๋ ต๋‹ค. JPA์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ JPA๋ฅผ ์ด์šฉํ•˜..

Programming/JPA 2020. 11. 24. 10:27
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/04   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ