1. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ฐ„๋‹จํ•œ ์‹ค์Šต

2021. 5. 13. 10:01ยท ๐ŸŒ WEB/JPA

์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์„ ๋•Œ ์ €์žฅ์ด ๋ ๊นŒ?

์—๋Ÿฌ๊ฐ€ ์ƒ๊ธด๋‹ค. ์™œ๋ƒํ•˜๋ฉด JPA๋Š” ํŠธ๋ Œ์ ์…˜์ด๋Š” ๋‹จ์œ„๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— JPA์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์€ ํŠธ๋ Œ์ ์…˜ ์•ˆ์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
    EntityManager em = emf.createEntityManager();

    Member member = new Member();
    member.setId(1L);
    member.setName("AE");

    em.persist(member);

    em.close();
    emf.close();

ํŠธ๋ Œ์ ์…˜์„ ์ถ”๊ฐ€ํ•œ ์ฝ”๋“œ

EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
    EntityManager em = emf.createEntityManager();

    EntityTransaction tx = em.getTransaction();
    tx.begin();
    try {

      Member member = new Member();
      member.setId(2L);
      member.setName("JE");
      em.persist(member);

      tx.commit();
    } catch (Exception e) {
      tx.rollback();
    } finally {
      em.close();
    }
    emf.close();
  }

 

์—…๋ฐ์ดํŠธํ•  ๊ฒฝ์šฐ์—๋„ ์ €์žฅ์„ ํ•ด์•ผํ• ๊นŒ?

 

์•„๋ž˜์™€ ๊ฐ™์ด persist๋Š” ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค ์™œ๋ƒํ•˜๋ฉด JPA๋ฅผ ํ†ตํ•ด์„œ Entity๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋ฉด JPA๊ฐ€ ๊ด€๋ฆฌํ•˜๋ฉด์„œ ๋ณ€๊ฒฝ์ด ๋˜์—ˆ๋Š”์ง€ ํŠธ๋ Œ์ ์…˜์„ ์ปค๋ฐ‹ํ•˜๋Š” ์‹œ์ ์„ ๋‹ค ์ฒดํฌ ํ•˜์—ฌ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์—…๋ฐ์ดํŠธ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

	Member member = em.find(Member.class, 1L);
	member.setName("HELLO");
	tx.commit();

 

EntityManager ์‚ฌ์šฉ ์ฃผ์˜!

์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ํŒฉํ† ๋ฆฌ๋Š” ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์—์„œ ๊ณต์œ ํ•œ๋‹ค.

์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋Š” ์“ฐ๋ ˆ๋“œ๊ฐ„์— ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค -> close()๋กœ ๊ณ„์† ๋‹ซ์•„์ฃผ์–ด์•ผ ํ•œ๋‹ค. ( ์š”์ฒญ์ด ์˜ฌ๋•Œ๋งˆ๋‹ค ์“ฐ๊ณ  ๋ฒ„๋ฆฌ๊ณ ๋ฅผ ๋ฐ˜๋ณต )

JPA์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์€ ํŠธ๋ Œ์ ์…˜ ์•ˆ์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

 

JPQL

JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค.

๋ฌธ์ œ๋Š” ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ์ธ๋ฐ ๋ชจ๋“  DB ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ DB์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์ด ํฌํ•จ๋œ SQL์ด ํ•„์š”ํ•˜๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ JPQL์ด๋ผ๋Š” ๊ฐ์ฒด ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค. GROUP BY, HAVING, JOIN ๋“ฑ ์ง€์› ํ•˜๊ณ , ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ฟผ๋ฆฌํ•œ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด JPQL์ธ๋ฐ DB๋ฐฉ์–ธ์„(MySql, Oracle ๋“ฑ) ๋ณ€๊ฒฝํ•˜๋ฉด ์ฟผ๋ฆฌ๋ฌธ๋ฒ•๋„ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์‹คํ–‰๋œ๋‹ค.

List<Member> result = em.createQuery("select m from Member m", Member.class)
	.setFirstResult(5)
	.setMaxResults(8)
	.getResultList();

 

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐ŸŒ WEB > JPA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์—ฐ๊ด€๊ด€๊ณ„  (0) 2021.05.14
3. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์—”ํ‹ฐํ‹ฐ ๋งคํ•‘  (0) 2021.05.13
2. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹  (0) 2021.05.13
0. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ  (0) 2021.05.11
JPA Pageable ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2021.02.03
'๐ŸŒ WEB/JPA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 3. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์—”ํ‹ฐํ‹ฐ ๋งคํ•‘
  • 2. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹
  • 0. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ
  • JPA Pageable ์‚ฌ์šฉํ•˜๊ธฐ
์• ์ •์“ฐ
์• ์ •์“ฐ
์• ์ •์“ฐ
์• ์ •์ฝ”๋”ฉ ๐Ÿ’ป
์• ์ •์“ฐ
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (93)
    • ๐Ÿง  MIND (0)
    • ๐Ÿ“ ํšŒ๊ณ  (5)
    • โš™๏ธ ๋ฐฐํฌ ๋ฐ ์ธํ”„๋ผ (2)
    • ๐Ÿ—‚๏ธ DataBase (1)
      • QUERY (1)
    • ๐Ÿ’ป Computer Science (12)
    • ๐ŸŒ WEB (62)
      • HTML,CSS (0)
      • Kotlien (1)
      • JAVA (20)
      • JavaScript (3)
      • Spring (16)
      • Thymeleaf (2)
      • Node.js (1)
      • React (2)
      • SETTING (3)
      • JPA (11)
    • ๐Ÿœ TESTING (3)
    • ๊ธฐํƒ€ (4)
    • ์—๋Ÿฌ๋ชจ์Œ (4)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • max_digest_length
  • ์ง๋ ฌํ™”
  • ์„œ๋น„์Šคํ…Œ์ŠคํŠธ
  • ๋™์ ํ”„๋ก์‹œ
  • Spring
  • ๊ฐœ๋ฐœ์ž
  • rdsํŒŒ๋ผ๋ฏธํ„ฐ
  • QueryDSL
  • JWT
  • ์ฝ”ํ…Œ
  • ํšŒ๊ณ 
  • Java
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ฐœ๋ฐœ์žํšŒ๊ณ 
  • ํŒŒ์ด์ฌ
  • ์ž๋ฐ”
  • 6์›”ํšŒ๊ณ 
  • ArgumentCaptor
  • JPA
  • Til
  • ๋ฉ”์„œ๋“œํ…Œ์ŠคํŠธ
  • null์ œ์™ธ
  • Setting
  • ๊ธฐ์ดˆ
  • Gson null
  • enum
  • XSSFWorkbook
  • ์ธํ„ฐ๋ทฐ
  • ๋ฐฑ์ค€
  • spring-boot

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.1
์• ์ •์“ฐ
1. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ฐ„๋‹จํ•œ ์‹ค์Šต
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.