EntityManager 3

[JPA] ์ค€์˜์† ์ƒํƒœ

์ค€์˜์† ์ƒํƒœ EntityManager(์˜์†์„ฑ ์ปจํ…์ŠคํŠธ)์— ์˜ฌ๋ ค์ ธ ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ ๋”์ด์ƒ JPA๊ฐ€ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. Method EntityManager.detach() EntityManager.clear() EntityManager.close() Code EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { User user = em.find(User.class, 1L); user.setName("AAAA"); em..

CS 2021.12.08

[jpa] ์˜์†์„ฑ์ปจํ…์ŠคํŠธ1

JPA์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ต์ˆ™์ง€ ์•Š์•„ ์ธ๊ฐ•์„ ๋“ค์œผ๋ฉด์„œ ์ •๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ฏ์„  ๊ฐœ๋…๋“ค์ด ๋งŽ์•„ ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์ดํ•ดํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ ์ž˜๋ชป ์ดํ•ดํ•˜๊ณ  ์ •๋ฆฌํ•œ ๋ถ€๋ถ„๋“ค์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€ ๋‚จ๊ฒจ ์ฃผ์‹œ๋ฉด ๋ฐ”๋กœ ๋ฐ˜์˜ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Words ์˜์†์„ฑ: "entity"๋ฅผ ์—ฐ๊ตฌ์ €์žฅํ•˜๋Š” ํ™˜๊ฒฝ EntityManager.persist(entity) ์•ž์— ์ด์•ผ๊ธฐํ•œ persist๋Š” ์‚ฌ์‹ค db์— insert๋ฅผ ์ง์ ‘ ์‹œํ‚ค๋Š” ์ฟผ๋ฆฌ๋ฌธ์ด ์•„๋‹ˆ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. persist๋ฅผ ํ†ตํ•ด ํŠน์ •ํ•œ ์ค‘๊ฐ„ ๊ณต๊ฐ„์— ์ €์žฅํ•˜๊ณ  commit ์‹œ์— ์‹ค์ œ insert๊ฐ€ ์ด๋ฃจ์–ด ์ง‘๋‹ˆ๋‹ค. ์ค€์˜์†, ์‚ญ์ œ // ํšŒ์› ์—”ํ„ฐํ‹ฐ๋ฅผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์—์„œ ๋ถ„๋ฆฌ, ์ค€์˜์† ์ƒํƒœ em.detach(user); // ๊ฐ์ฒด๋ฅผ ์‚ญ..

CS 2021.12.07

# [JPA] JPQL์˜ ๊ธฐ๋ณธ์  ์ •์˜์™€ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•

์•ž์„œ ํ•œ ๋‚ด์šฉ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ crud์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ํ•˜์ง€๋งŒ JPA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ๋ถ™์—ฌ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ• ๊นŒ์š”? ์ด๋•Œ JPA์—์„œ ์ œ๊ณตํ•˜๋Š” ์–ธ์–ด๊ฐ€ JPQL์ž…๋‹ˆ๋‹ค. JPQL์ด๋ž€? SQL์„ ์ถ”์ƒํ™”ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์ฟผ๋ฆฌ ์ž…๋‹ˆ๋‹ค. ์™œ? JPA ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—”ํ„ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ application์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ DB์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์ด ํฌํ•จ๋œ SQL์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ง• SQL์„ ์ถ”์ƒํ™”ํ•ด์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค SQL์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. JPQL์„ ํ•œ๋งˆ๋””๋กœ ์ •์˜ํ•˜๋ฉด ๊ฐ์ฒด ์ง€ํ–ฅ SQL ์ž…๋‹ˆ๋‹ค. SQL๊ณผ..

CS 2021.11.30
728x90
๋ฐ˜์‘ํ˜•